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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
|
<?php //============================================================+ // File name : example_061.php // Begin : 2010-05-24 // Last Update : 2014-01-25 // // Description : Example 061 for TCPDF class // XHTML + CSS // // Author: Nicola Asuni // // (c) Copyright: // Nicola Asuni // Tecnick.com LTD // www.tecnick.com // info@tecnick.com //============================================================+
/** * Creates an example PDF TEST document using TCPDF * @package com.tecnick.tcpdf * @abstract TCPDF - Example: XHTML + CSS * @author Nicola Asuni * @since 2010-05-25 */
// Include the main TCPDF library (search for installation path). require_once('tcpdf_include.php');
// create new PDF document $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// set document information $pdf->SetCreator(PDF_CREATOR); $pdf->SetAuthor('Nicola Asuni'); $pdf->SetTitle('TCPDF Example 061'); $pdf->SetSubject('TCPDF Tutorial'); $pdf->SetKeywords('TCPDF, PDF, example, test, guide');
// set default header data $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 061', PDF_HEADER_STRING);
// set header and footer fonts $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
// set default monospaced font $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
// set margins $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $pdf->SetHeaderMargin(PDF_MARGIN_HEADER); $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
// set auto page breaks $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
// set image scale factor $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
// set some language-dependent strings (optional) if (@file_exists(dirname(__FILE__).'/lang/eng.php')) { require_once(dirname(__FILE__).'/lang/eng.php'); $pdf->setLanguageArray($l); }
// ---------------------------------------------------------
// set font $pdf->SetFont('helvetica', '', 10);
// add a page $pdf->AddPage();
/* NOTE: * ********************************************************* * You can load external XHTML using : * * $html = file_get_contents('/path/to/your/file.html'); * * External CSS files will be automatically loaded. * Sometimes you need to fix the path of the external CSS. * ********************************************************* */
// define some HTML content with style $html = <<<EOF
<!DOCTYPE html> <html lang="ko"> <head> <title>소프트웨어 사용권 인증서 출력</title> <meta http-equiv="Content-Type" content="text/html; charset=euc-kr" /> <meta http-equiv="X-UA-Compatible" content="IE=8,IE=9,IE=10,chrome=1"> <script language='javascript' src="./js/jquery-1.8.3.min.js"></script> <script language='javascript' src='./js/img.js'></script><!-- Order_2.php --> <script src="./js/jqueryui/jquery-ui.js"></script> <script src="./js/html5shiv.js"></script> <script src="./js/respond.min.js"></script> <style> @import url('https://fonts.googleapis.com/css2?family=Nanum+Myeongjo:wght@400;700;800&display=swap'); body {font-family: 'Nanum Myeongjo', serif;margin:0;padding:0; width: 100%;height: 100%;} * {box-sizng:border-box;-moz-box-sizing:border-box;} .page {font-family: 'Nanum Myeongjo', serif;width: 210mm; min-height: 297mm;padding: 10mm;margin: 10mm auto;border-radius:5px;background:white;box-shadow:0 0 5px rgba(0,0,0,0.1);} .subpage {background:url('./img/mypage/certifi_frame.png') no-repeat center;background-size:cover;color:#000;padding: 1cm;height:257mm;webkit-print-color-adjust:exact;} .subpage .wrap {padding:0.7cm;} .subpage h2 {font-family: 'Nanum Myeongjo', serif;text-align: center; font-weight:bold; font-size:22pt;color:#000;margin-bottom:70px;margin-top:-3px;margin-right:25px;} .subpage p {font-family: 'Nanum Myeongjo', serif;font-size:10pt;line-height:1.5;font-weight:bold;margin:auto;} .subpage p span {font-family: 'Nanum Myeongjo', serif;} .subpage a {color:inherit;text-decoration:none;} .subpage .certifi_text {font-size:15pt;line-height:1.5;margin-top:60px;} .subpage .mb35 {margin-bottom:35px;} .certifi_num {font-weight:800;}
@page {size: A4; margin: 0;} @media print { html, body { width: 210mm; height: 297mm;} .print_btn {display:none;} .page { margin: 0 auto; border: initial; border-radius: initial; width: initial; min-height: initial; box-shadow: initial; background: initial; page-break-after: always; } .subpage {webkit-print-color-adjust:exact;} } @media screen { html, body { width: 210mm; height: 297mm;} .page { margin: 0; border: initial; border-radius: initial; width: initial; min-height: initial; box-shadow: initial; background: initial; page-break-after: always; } .subpage {webkit-print-color-adjust:exact;} } /*IE10+*/ @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none){ .page{ width:745px; margin:auto; } .subpage {webkit-print-color-adjust:exact;} } </style> </head> <body> <img src="./img/mypage/print_bt.png" id="print_btn" class="print_btn" style="cursor:pointer;width:100px;position:absolute;top:10px;right:10px;"> <div class="page"> <div class="subpage"> <div class="wrap"> <h2> <img src="./img/mypage/seal.png" style="vertical-align:middle;width:110px;"> 소프트웨어 사용권 인증서 </h2> <p class="mb35"> 사용자 정보 확인<br>- 상호(이름) : <span>MJSOFT3(박성원)</span><br> - 주소 : <span>대구 수성구 동대구로 331 (범어동, 청효정빌딩) 3</span></span><br> - ID : <span>ryunen</span> </p> <p class="mb35"> 소프트웨어 : <span>천년경영3C/S, 천년경영3C/S</span><br> 인증번호 : <span class="certifi_num">143063636</span><br> 도입일 : <span>년 월 일</span> <!--사용범위 : <span>PC 1대, PDA 3대(양도양수불가)</span><br> 사용기간 : <span>2021년 2월 24일 ~ 평생</span>--> </p> <p class="mb35"> 소프트웨어설치경로 : <a href="http://www.mijinsoft.co.kr/download/MJmanagement3CS_setup.exe" target="_blank"><span>http://www.mijinsoft.co.kr/download/MJmanagement3CS_setup.exe</span></a><br> - 설치파일을 다운로드 하신 후 백업 사본을 만들어 별도로 안전한 장소에 보관하시기 바랍니다. 일정기간이 경과 후에는 다운로드가 안 될 수 있습니다. </p> <p> 제품등록<br> 1. 본 프로그램을 먼저 다운로드하여 설치합니다.<br> 2. 인증번호를 확인 후 기재된 정품번호로 정품등록 하시면 됩니다. </p> <p class="certifi_text"> 엠제이소프트는 본 소프트웨어 사용원 인증서를 통해 "소프트웨어" 사용에 대한 권리를 위와 같이 인증하며, "소프트웨어" 를 정당하게 취득하여 사용하고 있음을 증명합니다. </p> <p class="certifi_text" style="text-align:right;"> <span style="margin-right:40px;"><span>2021</span>년</span><span style="margin-right:40px;"><span>08</span>월</span><span style="margin-right:100px;"><span>19</span>일</span> </p> <p class="certifi_text" style="text-align:center;margin-left:71px;"> 엠제이소프트<img src="./img/mypage/office_stamp.png" style="margin-left:14px;vertical-align:middle;width:60px;"> </p> </div> </div> </div><!-- //page --> <script> $('#print_btn').on('click', function() { $(".print_btn").hide(); window.print(); }); </script> </body> </html> EOF;
// output the HTML content $pdf->writeHTML($html, true, false, true, false, '');
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// add a page $pdf->AddPage();
$html = ' <h1>HTML TIPS & TRICKS</h1>
<h3>REMOVE CELL PADDING</h3> <pre>$pdf->SetCellPadding(0);</pre> This is used to remove any additional vertical space inside a single cell of text.
<h3>REMOVE TAG TOP AND BOTTOM MARGINS</h3> <pre>$tagvs = array(\'p\' => array(0 => array(\'h\' => 0, \'n\' => 0), 1 => array(\'h\' => 0, \'n\' => 0))); $pdf->setHtmlVSpace($tagvs);</pre> Since the CSS margin command is not yet implemented on TCPDF, you need to set the spacing of block tags using the following method.
<h3>SET LINE HEIGHT</h3> <pre>$pdf->setCellHeightRatio(1.25);</pre> You can use the following method to fine tune the line height (the number is a percentage relative to font height).
<h3>CHANGE THE PIXEL CONVERSION RATIO</h3> <pre>$pdf->setImageScale(0.47);</pre> This is used to adjust the conversion ratio between pixels and document units. Increase the value to get smaller objects.<br /> Since you are using pixel unit, this method is important to set theright zoom factor.<br /><br /> Suppose that you want to print a web page larger 1024 pixels to fill all the available page width.<br /> An A4 page is larger 210mm equivalent to 8.268 inches, if you subtract 13mm (0.512") of margins for each side, the remaining space is 184mm (7.244 inches).<br /> The default resolution for a PDF document is 300 DPI (dots per inch), so you have 7.244 * 300 = 2173.2 dots (this is the maximum number of points you can print at 300 DPI for the given width).<br /> The conversion ratio is approximatively 1024 / 2173.2 = 0.47 px/dots<br /> If the web page is larger 1280 pixels, on the same A4 page the conversion ratio to use is 1280 / 2173.2 = 0.59 pixels/dots';
// output the HTML content $pdf->writeHTML($html, true, false, true, false, '');
// reset pointer to the last page $pdf->lastPage();
// ---------------------------------------------------------
//Close and output PDF document $pdf->Output('example_061.pdf', 'I');
//============================================================+ // END OF FILE //============================================================+
|