2009-07-27 45 views
5

Có thể thêm văn bản liên kết (liên kết) vào trang Zend_PDF không? Tôi không thể tìm thấy bất kỳ thông tin nào về điều này trong sách hướng dẫn trực tuyến Zend_Pdf hoặc đọc mã, vì vậy tôi đoán là không thể.Zend_Pdf Thêm liên kết văn bản vào trang pdf

Nếu có cách nào, vui lòng đề xuất!

Cảm ơn!

+0

Bạn giải quyết này? – Guus

Trả lời

1

Điều này là không thể - tôi đã cố gắng làm điều gì đó tương tự như bản thân mình và không may phải sử dụng đến FPDF không tốt bằng Zend_Pdf.

Tôi đã xem xét triển khai chức năng liên kết trong Zend_Pdf và cấu trúc quá phức tạp đối với lượng thời gian tôi phải tìm giải pháp.

+1

Điều này bây giờ có thể với việc phát hành Zend Framework 1.9 và bổ sung hỗ trợ cho chú thích. Đọc thêm tại http://framework.zend.com/manual/en/zend.pdf.interactive-features.html#zend.pdf.pages.interactive-features.annotations –

3

Các mã sau sẽ tạo ra một trang trắng với một vùng có thể nhấp vào góc dưới bên trái có chứa một siêu liên kết:

$pdf = new Zend_Pdf(); 
$pdf->pages[0] = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4); 
$target = Zend_Pdf_Action_URI :: create('http://example.com'); 
$annotation = Zend_Pdf_Annotation_Link :: create(0, 0, 100, 100, $target); 
$pdf->pages[0]->attachAnnotation($annotation); 
$pdf->save('test.pdf'); 

Đoạn trên đã được thử nghiệm với Zend Framework 1.10.7 nhưng nên làm việc trên tất cả các phiên bản của Zend Framework từ 1.9.7 trở đi.

1

Tôi đã đấu tranh với vấn đề biên giới và đã giải quyết nó với một hack khá đơn giản:

echo str_replace('/Annot /Subtype /Link', '/Annot /Subtype /Link /Border[0 0 0]', $pdf->render()); 

Điều này sẽ làm cho tất cả anotations kiểu liên kết đến không có đường viền.

5

Disable biên giới:

... 
$target = Zend_Pdf_Action_URI::create('http://example.com'); 
$annotation = Zend_Pdf_Annotation_Link::create(0,0,100,100,$target); 
$annotation->getResource()->Border = new Zend_Pdf_Element_Array(); 
$pdf->pages[0]->attachAnnotation($annotation); 
... 
+0

Cảm ơn, $ annotation-> getResource() -> Border = new Zend_Pdf_Element_Array(); làm việc cho tôi :) –

Các vấn đề liên quan