δημιουργία εγγράφου pdf μέσω της γλώσσας php Η δημιουργία εγγράφου pdf είναι μια από τις πιο συνηθισμένες εργασίες κατά τη δημιουργία μιας διαδικτυακής εφαρμογής, τόσο στα eshop όσο και σε κάθε είδους διαδικτυακό πρόγραμμα.
δημιουργία εγγράφου pdf
Η γλώσσα php είναι η γλώσσα προγραμματισμού που χρησιμοποιείται περισσότερο για τη δημιουργία διαδικτυακών εφαρμογών. Η php έχει τη δυνατότητα για δημιουργία εγγράφου pdf μέσω ειδικών βιβλιοθηκών Η πιο δημοφιλής και αξιόπιστη από αυτές τις βιβλιοθήκες για τη δημιουργία εγγράφου pdf είναι το tcpdf. Σε αυτό το παράδειγμα θα εξηγήσουμε τον τρόπο με τον οποίο μπορούμε να κάνουμε δημιουργία εγγράφου pdf το οποίο να περιλαμβάνει κελιά, και μάλιστα με τα γράμματα παραμορφωμένα ώστε να πιάνουν ολόκληρο το κελί.
δημιουργία εγγράφου pdf
Καταρχήν ξεκινάμε με τις εντολές οι οποίες προστίθενται στις συνηθισμένες εντολές για τη δημιουργία εγγράφου pdf ώστε να πετύχουμε το στόχο μας. Δηλαδή παρουσιάζουμε τις εντολές που σχετίζονται με την παραμόρφωση (stretching) Εδώ ορίζουμε τη γραμματοσειρά:
1
$pdf->SetFont('times', '', 11);
Εδώ προσθέτουμε νέα σελίδα για τη δημιουργία εγγράφου pdf:
1
$pdf->AddPage();
Στη συνέχεια κάνουμε έλεγχο για την παραμόρφωση των κελιών (Cell stretching)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
$pdf->Cell(0, $pdf->Cell(0, $pdf->Cell(0, $pdf->Cell(0, $pdf->Cell(0,
0, 0, 0, 0, 0,
'TEST 'TEST 'TEST 'TEST 'TEST
CELL CELL CELL CELL CELL
STRETCH: STRETCH: STRETCH: STRETCH: STRETCH:
no stretch', 1, scaling', 1, 1, force scaling', spacing', 1, 1, force spacing',
1, 'C', 0, '', 0); 'C', 0, '', 1); 1, 1, 'C', 0, '', 2); 'C', 0, '', 3); 1, 1, 'C', 0, '', 4);
$pdf->Ln(5); $pdf->Cell(45, $pdf->Cell(45, $pdf->Cell(45, $pdf->Cell(45,
0, 0, 0, 0,
'TEST 'TEST 'TEST 'TEST
CELL CELL CELL CELL
STRETCH: STRETCH: STRETCH: STRETCH:
scaling', 1, 1, force scaling', spacing', 1, 1, force spacing',
'C', 0, '', 1); 1, 1, 'C', 0, '', 2); 'C', 0, '', 3); 1, 1, 'C', 0, '', 4);
$pdf->AddPage();
Ακολουθεί παράδειγμα με τη χρήση γενικής παραμόρφωσης και αραίωσης (general stretching and spacing)
1 2 3 4 5 6 7 8 9 10 11 12 13
for ($stretching = 90; $stretching <= 110; $stretching += 10) { for ($spacing = -0.254; $spacing <= 0.254; $spacing += 0.254) {
// set ge
// set general spacing value $pdf->setFontSpacing($spacing); $pdf->Cell(0, $pdf->Cell(0, $pdf->Cell(0, $pdf->Cell(0, $pdf->Cell(0, $pdf->Ln(2); } }
0, 0, 0, 0, 0,
'Stretching 'Stretching 'Stretching 'Stretching 'Stretching
'.$stretching.'%, '.$stretching.'%, '.$stretching.'%, '.$stretching.'%, '.$stretching.'%,
Spacing Spacing Spacing Spacing Spacing
'.sprintf('%+.3F', '.sprintf('%+.3F', '.sprintf('%+.3F', '.sprintf('%+.3F', '.sprintf('%+.3F',
$sp $sp $sp $sp $sp
14 15 Ακολουθεί ολοκληρωμένος ο κώδικας του παραδείγματος για τη δημιουργία εγγράφου pdf, όπως παρουσιάζεται και στο επίσημο site του tcpdf, στα παραδείγματα κώδικα για τη δημιουργία εγγράφου pdf :
1 <!--?php //============================================================+ // File name Cell stretching // // Author: 2 Description : Example 004 for TCPDF class // Tecnick.com LTD // www.tecnick.com // info@tecnick.com //=== 3 TEST document using TCPDF * @package com.tecnick.tcpdf * @abstract TCPDF - Example: Ce 4 library (search for installation path). require_once('tcpdf_include.php'); // create new 5 'UTF-8', false); // set document information $pdf--->SetCreator(PDF_CREATOR); 6 $pdf->SetAuthor('Nicola Asuni'); 7 $pdf->SetTitle('TCPDF Example 004'); $pdf->SetSubject('TCPDF Tutorial'); 8 $pdf->SetKeywords('TCPDF, PDF, example, test, guide'); 9 10// set default header data 11$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 004', PDF 12 13// set header and footer fonts 14$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); 15 16// set default monospaced font 17$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); 18 19// set margins 20$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); 21$pdf->SetHeaderMargin(PDF_MARGIN_HEADER); $pdf->SetFooterMargin(PDF_MARGIN_FOOTER); 22 23// set auto page breaks 24$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); 25 26// set image scale factor 27$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); 28 // set some language-dependent strings (optional) 29if (@file_exists(dirname(__FILE__).'/lang/eng.php')) { 30 require_once(dirname(__FILE__).'/lang/eng.php'); $pdf->setLanguageArray($l); 31 32} 33 34// --------------------------------------------------------35// set font 36$pdf->SetFont('times', '', 11); 37 38// add a page 39$pdf->AddPage();
40 41//Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=0, $link='', $stretch=0, $i 42 43// test Cell stretching $pdf->Cell(0, 0, 'TEST CELL STRETCH: no stretch', 1, 1, 'C', 0, '', 0); 44$pdf->Cell(0, 0, 'TEST CELL STRETCH: scaling', 1, 1, 'C', 0, '', 1); 45$pdf->Cell(0, 0, 'TEST CELL STRETCH: force scaling', 1, 1, 'C', 0, '', 2); 46$pdf->Cell(0, 0, 'TEST CELL STRETCH: spacing', 1, 1, 'C', 0, '', 3); 47$pdf->Cell(0, 0, 'TEST CELL STRETCH: force spacing', 1, 1, 'C', 0, '', 4); 48 49$pdf->Ln(5); 50$pdf->Cell(45, 0, 'TEST CELL STRETCH: scaling', 1, 1, 'C', 0, '', 1); 51$pdf->Cell(45, 0, 'TEST CELL STRETCH: force scaling', 1, 1, 'C', 0, '', 2); 52$pdf->Cell(45, 0, 'TEST CELL STRETCH: spacing', 1, 1, 'C', 0, '', 3); 53$pdf->Cell(45, 0, 'TEST CELL STRETCH: force spacing', 1, 1, 'C', 0, '', 4); 54 55$pdf->AddPage(); 56 // example using general stretching and spacing 57 58for ($stretching = 90; $stretching <= 110; $stretching += 10) { 59 for ($spacing = -0.254; $spacing <= 0.254; $spacing += 0.254) { // set gener 60 // set general spacing value 61 $pdf->setFontSpacing($spacing); 62 63 $pdf->Cell(0, 0, 'Stretching '.$stretching.'%, Spacing '.sprintf('%+.3F', $spaci 64 $pdf->Cell(0, 0, 'Stretching '.$stretching.'%, Spacing '.sprintf('%+.3F', $spaci 65 $pdf->Cell(0, 0, 'Stretching '.$stretching.'%, Spacing '.sprintf('%+.3F', $spaci 66 $pdf->Cell(0, 0, 'Stretching '.$stretching.'%, Spacing '.sprintf('%+.3F', $spaci $pdf->Cell(0, 0, 'Stretching '.$stretching.'%, Spacing '.sprintf('%+.3F', $spaci 67 68 $pdf->Ln(2); 69 } 70} 71 72// --------------------------------------------------------73 74//Close and output PDF document 75$pdf->Output('example_004.pdf', 'I'); 76 77//============================================================+ // END OF FILE 78//============================================================+ 79 80 81 82 83 84 85
Σε αυτό το άρθρο είδαμε πως γίνεται η δημιουργία εγγράφου pdf μέσω της γλώσσας php. Μια χρήσιμη τεχνική στηνκατασκευή δυναμικών ιστοσελίδων
pdf php δημιουργία pdf με php δημιουργία εγγράφου pdf
Πηγή: http://www.infopolis.gr/dimiourgia-eggrafou-pdf-me-php/