Zend_Pdf-Usage.xml 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <sect1 id="zend.pdf.usage">
  2. <title>Een gebruiksvoorbeeld voor de Zend_Pdf module</title>
  3. <para>
  4. Deze sectie geeft een voorbeeld van het gebruik van de Zend_Pdf module.
  5. </para>
  6. <para>
  7. Dit voorbeeld kan teruggevonden worden in een <filename>demos/Zend/Pdf/demo.php</filename> bestand.
  8. </para>
  9. <para>
  10. Er is ook een <filename>test.pdf</filename> bestand dat met dit voorbeeld kan gebruikt worden om te testen.
  11. </para>
  12. <example>
  13. <title>Zend_Pdf module voorbeeld</title>
  14. <programlisting role="php"><![CDATA[<?php
  15. /**
  16. * @package Zend_Pdf
  17. * @subpackage demo
  18. */
  19. /** Zend_Pdf */
  20. require_once 'Zend/Pdf.php';
  21. if (!isset($argv[1])) {
  22. echo "USAGE: php demo.php <pdf_file> [<output_pdf_file>]\n";
  23. exit;
  24. }
  25. if (file_exists($argv[1])) {
  26. $pdf = Zend_Pdf::load($argv[1]);
  27. } else {
  28. $pdf = new Zend_Pdf();
  29. }
  30. //------------------------------------------------------------------------------------
  31. // Draai pagina orde om
  32. $pdf->pages = array_reverse($pdf->pages);
  33. // Maak een nieuwe stijl
  34. $style = new Zend_Pdf_Style();
  35. $style->setFillColor(new Zend_Pdf_Color_RGB(0, 0, 0.9));
  36. $style->setLineColor(new Zend_Pdf_Color_GrayScale(0.2));
  37. $style->setLineWidth(3);
  38. $style->setLineDashingPattern(array(3, 2, 3, 4), 1.6);
  39. $style->setFont(new Zend_Pdf_Font_Standard(Zend_Pdf_Const::FONT_HELVETICA_BOLD), 32);
  40. // Maak een nieuw beeldobject
  41. $stampImage = new Zend_Pdf_Image_JPEG(dirname(__FILE__) . '/stamp.jpg');
  42. // Markeer de pagina als gewijzigd
  43. foreach ($pdf->pages as $page){
  44. $page->saveGS();
  45. $page->setStyle($style);
  46. $page->rotate(0, 0, M_PI_2/3);
  47. $page->saveGS();
  48. $page->clipCircle(550, -10, 50);
  49. $page->drawImage($stampImage, 500, -60, 600, 40);
  50. $page->restoreGS();
  51. $page->drawText('Modified by Zend Framework!', 150, 0);
  52. $page->restoreGS();
  53. }
  54. // Voeg een door het Zend_Pdf object aangemaakte nieuwe pagina toe (de pagina wordt aan het
  55. // gespecificeerde document gelinkt)
  56. $pdf->pages[] = ($page1 = $pdf->newPage('A4'));
  57. // Voeg een door het Zend_Pdf_Page object aangemaakte pagina toe (de pagina is niet aan het
  58. // gespecificeerde document gelinkt)
  59. $pdf->pages[] = ($page2 = new Zend_Pdf_Page(Zend_Pdf_Const::PAGESIZE_LETTER_LANDSCAPE));
  60. // Maak een nieuw lettertype
  61. $font = new Zend_Pdf_Font_Standard(Zend_Pdf_Const::FONT_HELVETICA);
  62. // Maak het lettertype actief en schrijf tekst
  63. $page1->setFont($font, 36);
  64. $page1->drawText('Helvetica 36 text string', 60, 500);
  65. // Gebruik het lettertype object voor een andere pagina
  66. $page2->setFont($font, 24);
  67. $page2->drawText('Helvetica 24 text string', 60, 500);
  68. // Gebruik een ander lettertype
  69. $page2->setFont(new Zend_Pdf_Font_Standard(Zend_Pdf_Const::FONT_TIMES_ROMAN), 32);
  70. $page2->drawText('Times-Roman 32 text string', 60, 450);
  71. // Teken een rechthoek
  72. $page2->setFillColor(new Zend_Pdf_Color_GrayScale(0.8));
  73. $page2->setLineColor(new Zend_Pdf_Color_GrayScale(0.2));
  74. $page2->setLineDashingPattern(array(3, 2, 3, 4), 1.6);
  75. $page2->drawRectangle(60, 400, 400, 350);
  76. // Teken een cirkel
  77. $page2->setLineDashingPattern(Zend_Pdf_Const::LINEDASHING_SOLID);
  78. $page2->setFillColor(new Zend_Pdf_Color_RGB(1, 0, 0));
  79. $page2->drawCircle(85, 375, 25);
  80. // Teken sectoren
  81. $page2->drawCircle(200, 375, 25, 2*M_PI/3, -M_PI/6);
  82. $page2->setFillColor(new Zend_Pdf_Color_CMYK(1, 0, 0, 0));
  83. $page2->drawCircle(200, 375, 25, M_PI/6, 2*M_PI/3);
  84. $page2->setFillColor(new Zend_Pdf_Color_RGB(1, 1, 0));
  85. $page2->drawCircle(200, 375, 25, -M_PI/6, M_PI/6);
  86. // Teken een ellips
  87. $page2->setFillColor(new Zend_Pdf_Color_RGB(1, 0, 0));
  88. $page2->drawEllipse(250, 400, 400, 350);
  89. $page2->setFillColor(new Zend_Pdf_Color_CMYK(1, 0, 0, 0));
  90. $page2->drawEllipse(250, 400, 400, 350, M_PI/6, 2*M_PI/3);
  91. $page2->setFillColor(new Zend_Pdf_Color_RGB(1, 1, 0));
  92. $page2->drawEllipse(250, 400, 400, 350, -M_PI/6, M_PI/6);
  93. // Teken en vul een polygoon
  94. $page2->setFillColor(new Zend_Pdf_Color_RGB(1, 0, 1));
  95. $x = array();
  96. $y = array();
  97. for ($count = 0; $count < 8; $count++) {
  98. $x[] = 140 + 25*cos(3*M_PI_4*$count);
  99. $y[] = 375 + 25*sin(3*M_PI_4*$count);
  100. }
  101. $page2->drawPolygon($x, $y,
  102. Zend_Pdf_Const::SHAPEDRAW_FILLNSTROKE,
  103. Zend_Pdf_Const::FILLMETHOD_EVENODD);
  104. // Teken een lijn
  105. $page2->setLineWidth(0.5);
  106. $page2->drawLine(60, 375, 400, 375);
  107. //------------------------------------------------------------------------------------
  108. if (isset($argv[2])) {
  109. $pdf->save($argv[2]);
  110. } else {
  111. $pdf->save($argv[1], true /* update */);
  112. }
  113. ]]></programlisting>
  114. </example>
  115. </sect1>
  116. <!--
  117. vim:se ts=4 sw=4 et:
  118. -->