Cara membuat pdf di php secara dinamis menggunakan tcpdf

PHP adalah salah satu bahasa skrip sisi server paling kuat yang tersedia saat ini. Bahasa pemrograman ini digunakan oleh developer untuk membuat website yang dinamis dan interaktif

Cara membuat pdf di php secara dinamis menggunakan tcpdf

PDF adalah singkatan dari Portable Document Format, yang menangkap semua elemen dalam sebuah file dan memungkinkan orang untuk mempresentasikan dokumen dengan mudah terlepas dari aplikasi yang digunakan. PHP memiliki beberapa perpustakaan yang kuat yang dapat mengubah kode yang dapat dieksekusi menjadi dokumen PDF

Bayangkan jika Anda diberi tugas untuk memasukkan pembuatan PDF ke dalam aplikasi web berbasis PHP Anda, mengetahui cara menggunakan PHP untuk membuat dokumen PDF akan sangat berguna.

Pada artikel ini, saya akan mendemonstrasikan cara membuat file PDF dengan pustaka PHP PDF pihak ketiga seperti FPDF, TCPDF, DOMPDF, html2PDF, dan generator PHP PDF

2. Perpustakaan PHP untuk Pembuatan PDF

PHP menyediakan berbagai pustaka yang dapat dengan mudah membantu Anda mengubah file PHP menjadi dokumen PDF. Saya menyusun daftar pustaka sederhana, dengan mempertimbangkan implementasi, fungsi, dan kasus penggunaan

2. 1 – FPDF

FPDF (Format Dokumen Portabel Gratis) adalah kelas PHP yang mencakup banyak fungsi untuk membuat dan mengedit PDF secara gratis. Kelas FPDF mendukung berbagai fitur seperti

  • Dukungan gambar (PNG, JPEG, dan GIF)
  • Header halaman
  • Format halaman
  • Footer
  • Page break otomatis, dan banyak lagi

Namun, karena merupakan pustaka pihak ketiga, diperlukan beberapa proses sebelum Anda dapat menggunakannya. Kamu akan membutuhkan

  1. Unduh kelas FPDF secara gratis dari situs web FPDF
  2. Buat folder dan ekstrak paket FPDF ke dalamnya. Katakanlah Anda telah mengunduh dan mengekstrak paket FPDF di dalam folder bernama fpdf (atau nama apa pun yang Anda suka)
  1. Buat file PHP baru bernama scriptToPDF. php di dalam folder yang sama dan masukkan potongan kode di bawah ini. Simpan file dan coba akses melalui localhost Anda. http. //localhost/fpdf/scriptToPDF. php
<?php
	

require('./fpdf.php');
class myPDF extends FPDF {
  
    // Page header
    function Header() {
          
        // Set font family to Arial bold 
        $this->SetFont('Times','B',14);
          
        // Move to the right
        $this->Cell(276,5, 'HOW TO GENERATE PDF USING FPDF');

        //Sets the text color
        $this->SetTextColor(0,0,255);

        //Line break
        $this->Ln(20);
          
        // Header
        $this->Cell(200,10,'FPDF DOCUMENTATION',0,0,'C');
          
        // Line break
        $this->Ln(20);
    }
  
    // Page footer
    function Footer() {
          
        // Position at 1.5 cm from bottom
        $this->SetY(-25);
          
        // Arial italic 8
        $this->SetFont('Arial','I',8);
          
        // Page number
        $this->Cell(0,10,'Page ' . 
            $this->PageNo() . '/{nb}',0,0,'C');
    }
    // header Attributes
    function headerAttributes() {
        $this->SetFont('Times','B', 10);
        $this->Cell(30,10,'Attributes',1,0,'C');
        $this->Cell(45,10,'Description',1,0,'C');
        $this->Cell(60,10,'How to Use',1,0,'C');
        $this->Cell(40,10,'Tutorials',1,0,'C');
        $this-the >Ln();
    }
}
  
// Instantiation of FPDF class
$pdf = new myPDF();
  
// Define an alias for number of pages
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->headerAttributes();
$pdf->SetFont('Times','',14);
  

$pdf->Output();
  
?>

Ini akan membuat dokumen PDF dengan header, atribut header, dan footer. Anda juga dapat menggunakan FPDF untuk menambahkan tautan, menggambar garis, dan menjalankan fungsi lainnya. Informasi lebih lanjut telah disediakan dalam dokumentasi

2. 2 – TCPDF

Pustaka TCPDF PHP memudahkan pembuatan dokumen PDF. Anda dapat melakukannya dengan mudah dengan mengkloning repositori GitHub. Setelah mengkloning repositori, Anda dapat mengimpor pustaka ini ke file PHP Anda. Pustaka TCPDF juga mendukung berbagai fungsi seperti

  • Kelola header dan footer halaman secara otomatis
  • Opsi rendering teks -Proses untuk menerbitkan kode XHTML + CSS, JavaScript, dan Formulir
  • Mendukung gambar JPEG, PNG, dan SVG secara asli
  • Hentian halaman, jeda baris, dan perataan teks semuanya otomatis
  • Pengelompokan halaman dan penomoran halaman otomatis, dan masih banyak lagi

Untuk mengaktifkannya, diperlukan yang berikut ini

  1. Kloning repositori
  2. Buat file bernama 'myPDF. php’ (atau nama lain yang Anda inginkan) di dalam folder yang Anda kloning dan masukkan cuplikan kode berikut
<?php

	// Include the main TCPDF library (search for installation path).
	require_once('tcpdf.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('Nicole Asuni');
	$pdf->SetTitle('PDF file using TCPDF');

	// set default header data
	$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 006', 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(20, 20, 20);
	$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);

	// add a page
	$pdf->AddPage();

	$html = <<<EOD
<h1>TCPDF PHP Library is easy!</h1>
<i>This is an example of the TCPDF library.</i>
<p>I am using the default header and footer</p>
<p>Please check the source code documentation for more examples of using TCPDF.</p>

EOD;

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

	 
	// $pdf->writeHTML($html, true, false, true, false, '');
	
        // add a page
	$pdf->AddPage();

	$html = '<h4>Second page</h4>';
	
	$pdf->writeHTML($html, true, false, true, false, '');

	// reset pointer to the last page
	$pdf->lastPage();
	//Close and output PDF document
	$pdf->Output('example.pdf', 'I');

?>
_

Ini menghasilkan dokumen PDF menggunakan header dan footer default perpustakaan TCPDF. Anda dapat menemukan lebih banyak contoh cara menggunakan perpustakaan di situs web mereka

2. 3 – DOMPDF

DomPDF adalah konverter HTML ke PDF berbasis PHP. Ini adalah perpustakaan yang membaca dokumen HTML dan CSS (termasuk gaya sebaris dan lembar gaya eksternal) dan mengonversinya menjadi dokumen PDF yang dibuat secara otomatis. Pustaka dompdf mendukung banyak fitur seperti

  • CSS 2. 1 dan beberapa properti CSS3, termasuk aturan @import, @media, dan @halaman
  • Sebagian besar HTML 4. 0 atribut presentasi
  • Kompatibilitas dengan tabel yang kompleks
  • Dukungan untuk gambar (gif, png (8, 24, dan 32 bit dengan saluran alfa), bmp, dan jpeg)
  • Tidak bergantung pada perpustakaan PDF pihak ketiga, di antara keuntungan lainnya

** Catatan. Untuk mengaktifkannya berfungsi, PHP versi 7. 1 atau lebih tinggi diperlukan

Perpustakaan ini dapat dengan mudah diinstal melalui komposer

composer require dompdf/dompdf

Atau Anda dapat memilih untuk mengkloning repositori di Github ke sistem Anda. Setelah menggandakan repositori, buat file bernama index.php di dalam folder yang Anda kloning dan masukkan potongan kode berikut

<?php
// Include autoloader 
require_once 'dompdf/autoload.inc.php'; 
 
// Reference the Dompdf namespace 
use Dompdf\Dompdf; 
 
// Instantiate and use the dompdf class 
$dompdf = new Dompdf();


$html='
<style>
    table {
        font-family: arial;
        width:400px;
        border-collapse: collapse;
    }
    td, th {
        border: 1px solid black;
        text-align: left;
        padding: 8px;
    }
    tr:nth-child(even) {
        background-color: grey;
    }
</style>
<h1>Welcome to api.template</h1>
<h3>List of Registered users </h3>
<table>
    <tr>
        <th>Name</th>
        <th>Age</th>
        <th>Date of Birth</th>
        <th>Country</th>
    </tr>
    <tr>
        <td>Caroline White</td>
        <td>50</td>
        <td>20-12-1960</td>
        <td>Germany</td>
    </tr>
    <tr>
        <td>Jane Dutch</td>
        <td>35</td>
        <td>20-12-1978</td>
        <td>Kenya</td>
    </tr>

</table>

';
// Load HTML content 
$dompdf->loadHtml($html);
 
 
// (Optional) Setup the paper size and orientation 
$dompdf->setPaper('A4', 'landscape'); 
 
// Render the HTML as PDF 
$dompdf->render(); 
 
// Output the generated PDF to Browser 
$dompdf->stream();
?>

Kode ini menghasilkan dokumen PDF dengan tata letak HTML dan CSS berikut

2. 4 – HTML2PDF

API HTML2PDF memudahkan konversi halaman web ke PDF. Itu membaca kode HTML yang valid dan mengubahnya menjadi format PDF, memungkinkannya menghasilkan dokumen seperti tanda terima dan manual, di antara banyak lainnya. Perlu dicatat bahwa tag khusus harus diterapkan untuk menggunakan API html2pdf, oleh karena itu, Anda disarankan untuk menulis kode HTML Anda sendiri. Ini menggunakan TCPDF

Ini memiliki banyak fitur keren, seperti

  • Kemampuan untuk menyesuaikan ukuran halaman dan margin
  • Memungkinkan Anda mempersonalisasi tata letak dengan mengubah font dan warna sesuai keinginan Anda
  • Memungkinkan Anda untuk menyesuaikan header, footer, dan offset
  • Memungkinkan Anda menambahkan tanda air ke dokumen PDF Anda
  • Menggunakan enkripsi atau kata sandi untuk melindungi PDF Anda dari pencetakan dan penyalinan yang tidak sah

Untuk menggunakan API HTML2PDF, Anda memerlukan

  1. PHP versi 5. 6 atau lebih tinggi
  2. Ekstensi mbstring atau gd PHP diinstal

Cara yang disarankan untuk menginstal HTML2PDF adalah melalui komposer

composer require spipu/html2pdf
_

Buat file baru di folder root dan rekatkan kode berikut ke dalamnya

<?php
require __DIR__.'\autoload.php';

use Spipu\Html2Pdf\Html2Pdf;

$html2pdf = new Html2Pdf();
$html='
<h1>HTML2PDF is easy</h1>
<p>The HTML2PDF API makes it simple to convert web pages to PDF.</p>
<p>It should be noted that specific tags must be implemented to use the html2pdf</p>
'
$html2pdf->writeHTML($html);
$html2pdf->output();

?>

Kode ini mengubah HTML menjadi dokumen PDF

2. 5 – Template API. io – API REST

Template API. io adalah platform API berbasis cloud yang tangguh yang memudahkan pembuatan REST API sebagai dokumen PDF dengan menggunakan template yang sudah dibuat. Saat ini mendukung konversi HTML ke PDF dan memungkinkan Anda melihat pratinjau PDF Anda sebelum mengunduh. Ini mencakup beberapa fitur hebat, seperti

  • Konversikan HTML ke PDF
  • Ini kompatibel dengan CSS, JavaScript, PHP, dan Python
  • Integrasikan dengan Zapier, Integromat, n8n, Airtable, UiPath, dan platform Tanpa kode lainnya
  • Footer dan header khusus dengan nomor halaman dan total halaman didukung

Untuk menggunakan APITemplate. io, Anda perlu melakukan hal berikut

  1. Daftar di aplikasi. apitemplate. io/accounts/signup/ untuk membuat akun
  2. Di halaman Manage Templates, klik tombol Create PDF Template untuk membuat template baru
  3. Posting dan manipulasi data JSON Anda sesuka Anda bersama dengan parameter untuk menghasilkan PDF
<?php
    function generate($template_id,$api_key, $data) {
        $url = "https://rest.apitemplate.io/v2/create-pdf?template_id=" . $template_id;
        $headers = array("X-API-KEY: ".$api_key);
        $curl = curl_init();
        if ($data) curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $result = curl_exec($curl);
        curl_close($curl);
        if (!$result) {
            return null;
        }else{
            $json_result = json_decode($result, 1);
            if($json_result["status"]=="success"){
                return $json_result["download_url"];
            }else{
                return null;
            }
        }
    }

    $tempate_id = "79667b2b1876e347";
    $api_key = "6fa6g2pdXGIyHRhVlGh7U56Ada1eF";
    $json_payload='{ "invoice_number": "INV38379", "date": "2021-09-30", "currency": "USD", "total_amount": 82542.56 }';
    echo generate($tempate_id,$api_key,$json_payload);
?>
_

Titik akhir ini menghasilkan dokumen PDF yang berisi data JSON dan template

3. Kesimpulan

Pada artikel ini, kami membahas cara membuat file PDF dari file HTML menggunakan PHP

Kami juga membahas beberapa pustaka, termasuk htmltopdf, tcpdf, dompdf, fpdf, dan APITemplate. io. Kami juga membandingkannya dalam hal fitur, implementasi, fungsi, dan kasus penggunaan

Jika saya harus menyarankan alat, saya akan merekomendasikan APITemplate. io, ini karena dapat membantu Anda membuat PDF dengan cepat dan kompatibel dengan CSS, JavaScript, Java, dan Python

  • Cara membuat pdf di php secara dinamis menggunakan tcpdf
    Aisyah

  • Hai disana. Nama saya Aisyah. Saya seorang Insinyur Perangkat Lunak, penggemar ML, dan penulis Teknis. Saya senang menulis dan membuat konten yang bermanfaat bagi diri sendiri dan orang lain

    Bagaimana cara menghasilkan PDF dalam kode sumber php secara dinamis?

    $pdf=new FPDF(); Contoh 1. Contoh berikut menghasilkan file PDF dengan teks yang diberikan dalam kode.

    Bagaimana cara membuat PDF dinamis?

    Membuat formulir PDF (CS5. .
    Di InDesign, buat dokumen yang ingin Anda gunakan untuk formulir. Gunakan tabel dan kotak teks untuk membuat placeholder untuk bidang. .
    Ekspor dokumen ke Adobe PDF
    Mulai panduan formulir untuk mengonversi placeholder menjadi bidang formulir. Gunakan alat formulir untuk menambah dan mengedit formulir

    Bagaimana cara membuat PDF dinamis menggunakan Dompdf di php?

    Contoh berikut menunjukkan cara menggunakan Dompdf untuk mengonversi HTML dan menghasilkan PDF dengan konfigurasi minimal. .
    Tentukan konten HTML dalam metode loadHtml() dari kelas Dompdf
    Render HTML sebagai PDF menggunakan metode render()
    Keluarkan PDF yang dihasilkan ke Browser menggunakan metode stream()

    Bagaimana saya bisa mengunduh PDF dengan tcpdf?

    Pertama, redirect browser (menggunakan window. lokasi seperti yang dikatakan jawaban lain) untuk menavigasi ke tindakan pengontrol khusus di aplikasi Anda, mis. g. dengan url ini. http. //milikmu. aplikasi. com/download/pdf/filename. pdf. Ini akan menyebabkan browser mengunduh file. Simpan jawaban ini