2009-07-27 3 views
5

Можно ли добавить текст привязки (ссылка) на странице Zend_PDF? Я не мог найти информацию об этом в онлайн-справочнике Zend_Pdf или прочитать код, поэтому я думаю, что это невозможно.Zend_Pdf Добавить текстовую ссылку на страницу pdf

Если есть способ, пожалуйста, предложите!

Спасибо!

+0

ли вы решить эту проблему? – Guus

ответ

1

Это невозможно. Я попытался сделать что-то подобное себе и, к сожалению, пришлось прибегнуть к FPDF, который не так хорош, как Zend_Pdf.

Я изучил реализацию функциональности связи в Zend_Pdf, и структура была слишком сложной в течение того времени, когда мне приходилось находить решение.

+1

Теперь это возможно с выпуском Zend Framework 1.9 и добавлением поддержки аннотаций. Подробнее читайте в http://framework.zend.com/manual/en/zend.pdf.interactive-features.html#zend.pdf.pages.interactive-features.annotations –

3

Следующий код создаст пустую страницу с интерактивной областью в левом нижнем углу, который содержит гиперссылка:

$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'); 

выше фрагмент кода был протестирован с Zend Framework 1.10.7, но должны работать на все версии от Zend Framework от 1.9.7 и далее.

1

Я боролся с проблемой границы и решить ее с довольно простым хаком:

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

Это сделает все АННОТАЦИИ типа ссылки не имеют границ.

5

Отключить границы:

... 
$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

Спасибо, $ annotation-> getResource() -> Border = new Zend_Pdf_Element_Array(); работает на меня :) –