You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
3.7 KiB

  1. <?php
  2. function draw_text($cpdf, $fontname, $size, $x, $y, $text="") {
  3. cpdf_begin_text($cpdf);
  4. cpdf_set_font($cpdf, $fontname, $size, 4);
  5. if($text == "")
  6. cpdf_text($cpdf, $fontname." ".$size." Point", $x, $y, 1);
  7. else
  8. cpdf_text($cpdf, $text, $x, $y, 1);
  9. cpdf_end_text($cpdf);
  10. }
  11. $cpdf = cpdf_open(0);
  12. cpdf_set_Creator($cpdf, "Creator");
  13. cpdf_set_Title($cpdf, "Title");
  14. cpdf_set_Subject($cpdf, "Subject");
  15. cpdf_set_Keywords($cpdf, "Keyword1, Keyword2");
  16. cpdf_set_viewer_preferences($cpdf, 1);
  17. cpdf_page_init($cpdf, 1, 0, 600, 400, 1);
  18. $level1 = cpdf_add_outline($cpdf, 0, 0, 1, 1, "Examples");
  19. $level2a = cpdf_add_outline($cpdf, $level1, 1, 0, 1, "Text");
  20. draw_text($cpdf, "Helvetica", 18.0, 50, 330);
  21. draw_text($cpdf, "Helvetica-Bold", 18.0, 50, 310);
  22. draw_text($cpdf, "Helvetica-Oblique", 18.0, 50, 290);
  23. draw_text($cpdf, "Helvetica-BoldOblique", 18.0, 50, 270);
  24. draw_text($cpdf, "Times-Roman", 18.0, 50, 250);
  25. draw_text($cpdf, "Times-Bold", 18.0, 50, 230);
  26. draw_text($cpdf, "Times-Italic", 18.0, 50, 210);
  27. draw_text($cpdf, "Times-BoldItalic", 18.0, 50, 190);
  28. draw_text($cpdf, "Courier", 18.0, 50, 170);
  29. draw_text($cpdf, "Courier-Bold", 18.0, 50, 150);
  30. draw_text($cpdf, "Courier-Oblique", 18.0, 50, 130);
  31. draw_text($cpdf, "Courier-BoldOblique", 18.0, 50, 110);
  32. draw_text($cpdf, "Symbol", 18.0, 50, 90);
  33. draw_text($cpdf, "ZapfDingbats", 18.0, 50, 70);
  34. cpdf_page_init($cpdf, 2, 0, 400, 400, 1);
  35. $level2b = cpdf_add_outline($cpdf, $level2a, 0, 0, 2, "Annotations, Hyperlinks");
  36. cpdf_add_annotation($cpdf, 100, 100, 300, 200, "Annotation", "Text of Annotation");
  37. draw_text($cpdf, "Helvetica", 12.0, 102, 116, "Click here to go to");
  38. draw_text($cpdf, "Helvetica", 12.0, 102, 103, "http://localhost");
  39. cpdf_set_action_url($cpdf, 100, 100, 202, 130, "http://localhost");
  40. cpdf_page_init($cpdf, 3, 0, 400, 600, 1);
  41. $level2c = cpdf_add_outline($cpdf, $level2b, 0, 0, 3, "Drawing");
  42. cpdf_rect($cpdf, 100, 100, 90, 90, 1);
  43. cpdf_stroke($cpdf);
  44. cpdf_rect($cpdf, 200, 100, 90, 90, 1);
  45. cpdf_fill_stroke($cpdf);
  46. cpdf_setgray_fill($cpdf, 0.5);
  47. cpdf_circle($cpdf, 140, 250, 35, 1);
  48. cpdf_stroke($cpdf);
  49. cpdf_circle($cpdf, 240, 250, 35, 1);
  50. cpdf_fill_stroke($cpdf);
  51. cpdf_moveto($cpdf, 300, 100, 1);
  52. cpdf_lineto($cpdf, 350, 100, 1);
  53. cpdf_curveto($cpdf, 350, 100, 325, 300, 300, 100, 1);
  54. cpdf_stroke($cpdf);
  55. cpdf_moveto($cpdf, 400, 100, 1);
  56. cpdf_lineto($cpdf, 450, 100, 1);
  57. cpdf_curveto($cpdf, 450, 100, 425, 400, 400, 100, 1);
  58. cpdf_fill_stroke($cpdf);
  59. cpdf_page_init($cpdf, 4, 0, 400, 600, 1);
  60. $level2d = cpdf_add_outline($cpdf, $level2c, 0, 0, 4, "Images, Clipping");
  61. cpdf_import_jpeg($cpdf, "figure.jpg", 50, 50, -10.0, 0.0, 300.0, 0.0, 0.0, 1, 1);
  62. cpdf_save($cpdf);
  63. cpdf_newpath($cpdf);
  64. cpdf_moveto($cpdf, 300, 50);
  65. cpdf_lineto($cpdf, 450, 50, 1);
  66. cpdf_curveto($cpdf, 450, 100, 375, 300, 300, 100, 1);
  67. cpdf_closepath($cpdf);
  68. cpdf_rect($cpdf, 350, 215, 100, 30);
  69. cpdf_clip($cpdf);
  70. cpdf_newpath($cpdf); /* needed because clip doesn't consume path */
  71. draw_text($cpdf, "Helvetica", 18.0, 250, 130);
  72. cpdf_import_jpeg($cpdf, "figure.jpg", 300, 50, 0.0, 0.0, 300.0, 0.0, 0.0, 0, 1); /* watch for the second last parameter. It is 0 to disable extra gsave/grestore */
  73. cpdf_restore($cpdf);
  74. cpdf_page_init($cpdf, 5, 0, 400, 400, 1);
  75. $level2e = cpdf_add_outline($cpdf, $level2d, 0, 0, 5, "GD Image");
  76. $gdimage = imagecreate(100, 100);
  77. $color = imagecolorallocate($gdimage, 100, 190, 0);
  78. $black = imagecolorallocate($gdimage, 0, 0, 0);
  79. imageline($gdimage, 2, 2, 90, 90, $black);
  80. cpdf_place_inline_image($cpdf, $gdimage, 50, 50, 10.0, 150, 50.0, 1, 1);
  81. imagedestroy($gdimage);
  82. cpdf_finalize($cpdf);
  83. cpdf_output_buffer($cpdf);
  84. cpdf_close($cpdf);
  85. ?>