تبدیل صفحات وب به PDF با کتابخانه TCPDF در PHP

tcpdf
  • پیش گفتار این مقاله
  • ایمان کمالی در 1399/08/23

در این مقاله می پردازیم به معرفی کتابخانه TCPDF که کار آن تبدیل صفحات وب به PDF است.
با استفاده از این کتابخانه می توانید انوه فایل های متنی و صفحات وب را به PDF تبدیل کنید.

tcpdf
Array
(
    [0] => آموزش PHP
    [1] => آموزش برنامه نویسی
)

تبدیل صفحات وب به PDF

tcpdf
تبدیل صفحات وب به PDF

کار اصلی کتابخانه TCPDF تبدیل صفحات وب به PDF های با کیفیت است.

این کتابخانه می تواند هر نوع صفحه وبی را به PDF تبدیل کند، برای این کار نیازی به کتابخانه های جانبی دیگر نیست، هر چند استفاده از برخی ویژگی ها و امکانات در TCPDF نیازمند کتابخانه های دیگر PHP است.

مدیریت header و footer در PDF

کتابخانه TCPDF این امکان را به شما می دهد تا بتوانید هدر ( header ) و فوتر ( footer ) صفحات PDF را مدیریت کنید.

ممکن است بخواهید از این قسمت ها در PDF صرف نظر کنید یا اطلاعات بخصوصی مانند کپی رایت یا شماره صفحه و… در آن درج کنید.

حاشیه نویسی روی صفحات وبی که به PDF تبدیل شده

کتابخانه TCPDF در PHP همچنین این امکان را به شما می دهد تا روی صفحات PDF حاشیه نویسی کنید.

نکات و مواردی که لازم است را میتوانید به صورت حاشیه نویسی بر روی صفحات ایجاد شده قرار دهید.

همچنین می توانید برای کلمات و یا تصاویر در PDF ها توضیحات بنویسید که با قرار گرفتن نشانگر موس بر روی آن ها توضیحات نمایش داده شوند.

پشتیبانی از زبان فارسی در کتابخانه TCPDF

یکی از مزیت های این کتابخانه نسبت به کتابخانه های مشابه در php پشتیبانی از زبان فارسی، یعنی ساختار و نوشته های راست چین است.

بنابراین اگر می خواهید صفحات وب فارسی را به PDF تبدیل کنید به راحتی می توانید از این کتابخانه استفاده کنید.

تبدیل فرمت های مختلف به PDF

علاوه بر امکان تبدیل صفحات وب به PDF این امکان در کتابخانه tcpdf وجود دارد تا بتوانید فرمت های معمول نوشتاری را به PDF تبدیل کنید.

کافی است فایل مورد نظر را فراخوانی کرده و مانند مثالی که در ادامه می آوریم آن را تبدیل به فایل PDF کنید.

پشتیبانی از فرمت های مختلف تصویر در تبدیل کردن فایل ها و صفحات وب به PDF

در این کتابخانه PHP می توانید به راحتی و با خیال راحت از تمامی فرمت های تصویر استفاده کنید.

لیست فرمت هایی که کتابخانه tcpdf پشتیبانی می کند را در زیر مشاهده کنید :

  • SVG
  • Webp
  • jpg
  • png
  • bmp
  • Gif
  • GD
  • GD2
  • XBM
  • و …

پشتیبانی از حالات مختلف متن، فونت استایل ها و لینک ها در کتابخانه TCPDF

در این کتابخانه حالت های مختلف متن ها مانند :

  • Italic
  • Bold یا Strong
  • underline
  • و …

به خوبی پشتیبانی می شود! همچنین لینک ها نیز در PDF قرار می گیرند.

علاوه بر این می توانید فونت ( Font ) دلخواه خود را نیز برای ایجاد فایل های PDF تنظیم کنید.

نصب و استفاده از کتابخانه TCPDF در زبان برنامه نویسی PHP

اما برویم به سراغ نصب و استفاده از این کتابخانه قدرتمند!

آموزش نصب کتابخانه tcpdf

برای نصب کتابخانه ها در php دو روش کلی وجود دارد!

استفاده از Composer و یا دانلود و فراخوانی به صورت دستی که در ادامه توضیح می دهیم.

برای نصب به صورت دستی کافی است کتابخانه را از گیت هاب دانلود کرده و در جایی که می خواهید از آن استفاده کنید آن را include کنید.

اما برای نصب از طریق Composer کافی است فایل composer.json را در دایرکتوری root ایجاد کنید.

دقت کنید که کامپوزر ( Composer ) از پیش نصب شده باشد.

قطعه کد زیر را در فایل Composer قرار دهید :

{
    "require": {
        "tecnickcom/tc-lib-pdf": "dev-master"
    },
    "repositories": [
        {
            "type": "vcs",
            "url": "git@github.com:tecnickcom/tc-lib-pdf.git"
        }
    ]
}

سپس آن را نصب کنید :

php composer.phar install

آموزش ایجاد فایل PDF در PHP با استفاده از TCPDF

برای استفاده از این کتابخانه و ساخت فایل pdf می توانید مانند مثال زیر عمل کنید :

<?php

// 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 001');
$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.' 001', PDF_HEADER_STRING, array(0,64,255), array(0,64,128));
$pdf->setFooterData(array(0,64,0), array(0,64,128));

// 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 default font subsetting mode
$pdf->setFontSubsetting(true);

// Set font
// dejavusans is a UTF-8 Unicode font, if you only need to
// print standard ASCII chars, you can use core fonts like
// helvetica or times to reduce file size.
$pdf->SetFont('dejavusans', '', 14, '', true);

// Add a page
// This method has several options, check the source code documentation for more information.
$pdf->AddPage();

// set text shadow effect
$pdf->setTextShadow(array('enabled'=>true, 'depth_w'=>0.2, 'depth_h'=>0.2, 'color'=>array(196,196,196), 'opacity'=>1, 'blend_mode'=>'Normal'));

// Set some content to print
$html = <<<EOD
<h1>Welcome to <a href="http://www.tcpdf.org" style="text-decoration:none;background-color:#CC0000;color:black;">&nbsp;<span style="color:black;">TC</span><span style="color:white;">PDF</span>&nbsp;</a>!</h1>
<i>This is the first example of TCPDF library.</i>
<p>This text is printed using the <i>writeHTMLCell()</i> method but you can also use: <i>Multicell(), writeHTML(), Write(), Cell() and Text()</i>.</p>
<p>Please check the source code documentation and other examples for further information.</p>
<p style="color:#CC0000;">TO IMPROVE AND EXPAND TCPDF I NEED YOUR SUPPORT, PLEASE <a href="http://sourceforge.net/donate/index.php?group_id=128076">MAKE A DONATION!</a></p>
EOD;

// Print text using writeHTMLCell()
$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);

// ---------------------------------------------------------

// Close and output PDF document
// This method has several options, check the source code documentation for more information.
$pdf->Output('example_001.pdf', 'I');

//============================================================+
// END OF FILE
 - bitBang
//============================================================+

کد را در IDE خود وارد کرده و اجرا کنید.

برای مشاهده خروجی این قطعه کد می توانید به فایل PDF ساخته شده مراجعه کنید.

نتیجه گیری و چکیده این مقاله

در این مقاله با کتابخانه PHP برای ایجاد فایل های PDF آشنا شدید.

این کتابخانه در نوع خود بهترین است و با پشتیبانی از UTF-8 و نوشته های راست چین یا همان RTL مشکل بسیاری از برنامه نویسان ایرانی را حل کرده است.

امیدوارم از این مقاله استفاده لازم را برده باشید.

شاد و پیروز باشید!