pdflib_demo
4.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#!/usr/bin/env php
<?php
/**
* FILENAME:
* pdflib_demo
*
* DESCRIPTION:
* Demonstration of the pdflib PHP Library for generating PDF files
*
*/
/**
Links:
- https://www.pdflib.com/developer/technical-documentation/manuals/
- https://www.pdflib.com/pdflib-cookbook/browse-all-topics/
- https://www.pdflib.com/pdflib-cookbook/general-programming/starter-basic/php-general-progamming-issues/
- https://www.pdflib.com/en/pdflib-cookbook/block-handling-and-pps/linked-textblocks/php-linked-textblocks/
- https://www.pdflib.com/pdflib-cookbook/interactive-elements/link-annotations/php-link-annotations/
- https://www.pdflib.com/pdflib-cookbook/text-output/footnotes-in-text/footnotes-in-text/
- https://www.pdflib.com/fileadmin/pdflib/Cookbook/pdf/footnotes_in_text.pdf
- https://www.pdflib.com/pdflib-cookbook/pdf-import/import-in-reverse-order/php-import-in-reverse-order/
*/
// set a default timezone
date_default_timezone_set("America/Los_Angeles");
//require_once('tcpdf_include.php');
$outfile = __DIR__ . '/output.pdf';
// wrap PDFlib usage in a try{} block
try {
$pdf = new PDFlib();
// set up some PDFlib options
$pdf->set_option("errorpolicy=return");
$pdf->set_option("stringformat=utf8");
if ($pdf->begin_document($outfile, "") == 0)
throw new Exception("Error: " . $pdf->get_errmsg());
// set up the document metadata info
$pdf->set_info('Creator', 'IODP Science Support Office');
$pdf->set_info('Author', 'IODP Science Support Office');
$pdf->set_info('Title', 'Demo of TCPDF for generating IODP Proposals');
$pdf->set_info('Subject', 'IODP Proposals');
$pdf->set_info('Keywords', 'IODP proposal ocean drilling core expedition');
// START PAGE 1
$pdf->begin_page_ext(612, 792, '');
$textOpts = "fontname={Helvetica} embedding fontsize=20 "
. "encoding=unicode ";
$pdf->fit_textline("Jump to SSF for SHACK-10A", 20, 750,
$textOpts . " underline=true");
$pdf->fit_textline("This is some text on the first page; ", 20, 720,
$textOpts);
$pdf->fit_textline("Привет! Этот немного текста.", 20, 690, $textOpts);
// END PAGE 1
$pdf->end_page_ext('');
// START PAGE 2
//$pdf->begin_page_ext(612, 792, '');
$ssfPDF = $pdf->open_pdi_document(__DIR__ . "/site_summary_figure.pdf", '');
if ($ssfPDF == 0)
throw new Exception("Error: " . $p->get_errmsg());
$ssfPage = $pdf->open_pdi_page($ssfPDF, 1, '');
$ssfWidth = $pdf->pcos_get_number($ssfPDF, "pages[0]/width");
$ssfHeight = $pdf->pcos_get_number($ssfPDF, "pages[0]/height");
$pdf->begin_page_ext($ssfWidth, $ssfHeight, '');
$pdf->fit_pdi_page($ssfPage, 0, 0, '');
$pdf->close_pdi_page($ssfPage);
$pdf->close_pdi_document($ssfPDF);
// END PAGE 2
$pdf->end_page_ext('');
// close the document
$pdf->end_document('');
}
catch (PDFlibException $e) {
die("PDFlib exception occurred in sample:\n" .
"[" . $e->get_errnum() . "] " . $e->get_apiname() . ": " .
$e->get_errmsg() . "\n");
}
catch (Exception $e) {
die($e);
}
$p = 0;
/*
// write out the contents of the first page
$pdf->AddPage();
$topLink = $pdf->AddLink();
$pdf->SetLink($topLink);
//$pdf->AddFont('DejaVu','','DejaVuSansCondensed.ttf',true);
$pdf->AddFont('dejavusanscondensed','','dejavusanscondensed.php',true);
//$pdf->SetFont('DejaVu', '', 20);
$pdf->SetFont('dejavusanscondensed', '', 20);
$pdf->SetFont('', 'U');
$ssfLink = $pdf->AddLink();
$pdf->Write(10, "Jump to SSF for SHACK-10A", $ssfLink);
$pdf->SetFont('');
$pdf->Ln();
$pdf->Write(10, "This is some text on the first page; ");
$pdf->Ln();
$pdf->Write(10, "Привет! Этот немного текста.");
// load up the Site Summary Figure to go on page #2
$ssfPageCount = $pdf->setSourceFile(__DIR__ . '/site_summary_figure.pdf');
//print "Page count of site summary figure form is $ssfPageCount\n";
// import the SSF page
$ssfTemplate= $pdf->importPage(1);
//print "Page size of site summary figure PDF is: ";
//$ssfSize = $pdf->getTemplateSize($ssfTemplate);
//print "{$ssfSize['w']}mm x {$ssfSize['h']}mm\n";
// add the SSF file to the 2nd page
$pdf->AddPage();
$pdf->SetLink($ssfLink);
$pdf->useTemplate($ssfTemplate);
$pdf->SetFont('Helvetica');
$pdf->SetXY(5,5);
$pdf->SetFont('', 'U');
$pdf->Write(8, "Top", $topLink);
$pdf->SetFont('');
$pdf->SetXY(40, 5);
$pdf->Write(8, " SSF: P771/SHACK-10A");
// destination, F = "local file"; filename; isUTF8 (boolean)
//$pdf->Output('F', 'output.pdf', TRUE);
$pdf->Output(__DIR__ . '/output.pdf', 'F');
*/
// vim: expandtab filetype=php shiftwidth=3 tabstop=3