Converting PDF Files using PHP By Idris Winarno
Tools FPDF PDFlib HTML_ToPDF
FPDF Install your apache2 and PHP5 – # apt-get install apache2 php5 Install fpdf – # apt-get install fpdf Intergrate your fpdf into your php – ln -s /usr/share/fpdf/var/www/fpdf
Testing FPDF (1) <?php require('fpdf.php'); $pdf=new FPDF('P','mm','A4'); $pdf->AddPage(); $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,'Hello World!'); $pdf->Output(); ?>
Testing FPDF (2) <?php require('fpdf.php'); class PDF extends FPDF { //Page header function Header() { //Logo $this->Image('logo_pb.png',10,8,33); //Arial bold 15 $this->SetFont('Arial','B',15); //Move to the right $this->Cell(80); //Title $this->Cell(30,10,'Title',1,0,'C'); //Line break $this->Ln(20); } //Page footer function Footer() { //Position at 1.5 cm from bottom $this->SetY(-15); //Arial italic 8 $this->SetFont('Arial','I',8); //Page number $this->Cell(0,10,'Page '.$this- >PageNo().'/{nb}',0,0,'C'); } //Instanciation of inherited class $pdf=new PDF(); $pdf->AliasNbPages(); $pdf->AddPage(); $pdf->SetFont('Times','',12); for($i=1;$i<=40;$i++) $pdf->Cell(0,10,'Printing line number '.$i,0,1); $pdf->Output(); ?>
PDFLib Installing PDFLib – apt-get install libapache2-mod-php4 libapache2-mod-php4 – apt-get install php4-dev php5-dev php4-pear php5-pear – pear install pdflib --with-pdflib=/usr/local Adding new extension into php.ini – echo "extension=pdf.so" >> /etc/php4/conf.d/pdf_lib.ini – echo "extension=pdf.so" >> /etc/php5/conf.d/pdf_lib.ini Checking yout config – apache2ctl configtest Syntax OK Restart your apache – # /etc/init.d/apache2 restart
Alternative install of PDFLib # cd /usr/src/ # wget Or # wget p4.tar.gzhttp://lecturer.eepis-its.edu/~idris/files/aplikasi_web/PDFlib-Lite p4.tar.gz # tar xvf PDFlib-Lite-7.0.4p4.tar.gz # cd PDFlib-Lite-7.0.4p4 #./configure # make # make install # pecl install pdflib # install dir /usr/local Adding pdflib.so into your php.ini # /etc/init.d/apache2 restart
PDFLib phpinfo() PDF Support => enabled PDFlib GmbH Version => Revision => $Revision: 1.8 $ Pdflib installation ok
PDFLib Example <?php $p = PDF_new(); /* open new PDF file; insert a file name to create the PDF on disk */ if (PDF_begin_document($p, "", "") == 0) { die("Error: ". PDF_get_errmsg($p)); } PDF_set_info($p, "Creator", "hello.php"); PDF_set_info($p, "Author", "Rainer Schaaf"); PDF_set_info($p, "Title", "Hello world (PHP)!"); PDF_begin_page_ext($p, 595, 842, ""); $font = PDF_load_font($p, "Helvetica-Bold", "winansi", ""); PDF_setfont($p, $font, 24.0); PDF_set_text_pos($p, 50, 700); PDF_show($p, "Hello world!"); PDF_continue_text($p, "(says PHP)"); PDF_end_page_ext($p, ""); PDF_end_document($p, ""); $buf = PDF_get_buffer($p); $len = strlen($buf); header("Content-type: application/pdf"); header("Content-Length: $len"); header("Content-Disposition: inline; filename=hello.pdf"); print $buf; PDF_delete($p); ?>
HTML_ToPDF Download source – # cd /usr/src – #wget tar.gzhttp:// 3.5.tar.gz or – wget its.edu/~idris/files/aplikasi_web/HTML_ToPDF-3.5.tar.gzhttp://lecturer.eepis- its.edu/~idris/files/aplikasi_web/HTML_ToPDF-3.5.tar.gz Make symbolic link into /var/www – # ln -s /usr/src/HTML_ToPDF-3.5 /var/www/html2pdf Installaing html2ps & ps2pdf – # apt-get install html2ps – # apt-get install texlive-latex-recommended
Creating HTML This HTML code will be converted into PDF Make your own HTML code
HTML_ToPDF Test <?php /** $Id: example1.php :59:26Z jrust $ */ /** * The simplest example. We convert an HTML file into a PDF file. * We also add a few custom headers/footers to the PDF. */ ?> Testing HTML_ToPDF Creating the PDF from local HTML file.... Note that we customize the headers and footers! <?php // Require the class require_once dirname(__FILE__). '/../HTML_ToPDF.php'; // Full path to the file to be converted $htmlFile = dirname(__FILE__). '/test.html'; // The default domain for images that use a relative path // (you'll need to change the paths in the test.html page // to an image on your server) $defaultDomain = ' // Full path to the PDF we are creating $pdfFile = dirname(__FILE__). '/timecard.pdf'; // Remove old one, just to make sure we are making it // Instnatiate the class with our variables $pdf =& new HTML_ToPDF($htmlFile, $defaultDomain, $pdfFile); // Set headers/footers $pdf->setHeader('color', 'blue'); $pdf->setFooter('left', 'Generated by HTML_ToPDF'); $pdf->setFooter('right', '$D'); $result = $pdf->convert(); // Check if the result was an error if (is_a($result, 'HTML_ToPDFException')) { die($result->getMessage()); } else { echo "PDF file created successfully: $result"; echo ' Click here to view the PDF file.'; } ?> Please note that your folder permission is fully open
It’s your turn How to make a PDF file converted into database and shown by PHP files Please adapt into Final Project files (pdf files) to capture the abstract page (id and en)
THANK YOU