7

Is it possible to add anchor text(link) in Zend_PDF page? I wasn't be able to find any information about this in Zend_Pdf online manual, or reading code, so I guess it is not possible.

If there is way, please suggest!

Thanks!

jason
  • 8,918
  • 2
  • 37
  • 43

4 Answers4

6

Disable border:

...
$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([
    new Zend_Pdf_Element_Numeric(0),
    new Zend_Pdf_Element_Numeric(0),
    new Zend_Pdf_Element_Numeric(0)
]);
$pdf->pages[0]->attachAnnotation($annotation);
...
user2807202
  • 61
  • 1
  • 1
3

The following code will create a blank page with a clickable area at the bottom left corner that contains a hyperlink:

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

The above snippet was tested with Zend Framework 1.10.7 but should work on all versions of Zend Framework from 1.9.7 onwards.

JamesG
  • 4,288
  • 2
  • 31
  • 36
1

This isn't possible - I tried to do something similar myself and unfortunately had to resort to FPDF which isn't as good as Zend_Pdf.

I looked into implementing the link functionality in Zend_Pdf and the structure was too complicated for the amount of time I had to find a solution.

David Snabel-Caunt
  • 57,804
  • 13
  • 114
  • 132
  • 1
    This is now possible with the release of Zend Framework 1.9 and the addition of support for annotations. Read more at http://framework.zend.com/manual/en/zend.pdf.interactive-features.html#zend.pdf.pages.interactive-features.annotations – David Snabel-Caunt Aug 12 '09 at 09:51
1

I've been struggling with the border issue and have resolved it with a rather simple hack:

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

This will make all anotations of type link to not have a border.

CaTaHaC
  • 11
  • 1