This article explains how to use PHP and PDFtk Server (referred to as PDFtk) to populate PDF forms. It's a common need when handling document workflows, especially for client documents needing processing by third parties or when submitting CVs. PDFs handle various data types, making them ideal for this purpose.
Key Concepts:
- PDFtk is a powerful command-line tool for PDF manipulation, including form filling.
- Installation on Linux is straightforward (
sudo apt-get install pdftk
), verifiable withpdftk --version
. - FDF (Form Data File) is a simple text format for storing form data, easily integrated with PDFtk.
- The PHP script generates an FDF file from user input, uses PDFtk's
fill_form
to populate the PDF, and optionally flattens the result for immutability. - A PHP wrapper class simplifies the process, offering methods for saving and downloading the completed form.
Installation and Verification:
Using Homestead Improved (or a similar environment), install PDFtk via SSH:
sudo apt-get install pdftk pdftk --version
The version output confirms successful installation.
How it Works: FDF Files
PDFtk uses FDF files to interact with PDF forms. An FDF file is a plain-text file with a simple structure:
-
Header:
%FDF-1.2\n1 0 obj
(standard for all FDF files) -
Content: Contains form data entries, each line representing a field. The format is
/T(FieldName) /V(FieldValue)
-
Footer:
] >> >>\nendobj\ntrailer\n>\n%%EOF
(standard for all FDF files)
To determine field names, use Adobe Acrobat Pro or PDFtk's dump_data_fields
:
pdftk path/to/the/form.pdf dump_data_fields > field_names.txt
PHP Script and PDFtk Interaction:
A sample PDF form (shown below) will be used to illustrate the process.
This PHP script populates the form:
<?php $fname = 'John'; $lname = 'Smith'; $occupation = 'Teacher'; $age = '45'; $gender = 'male'; $fdf_header = '%FDF-1.2\n1 0 obj\n<</FDF '; $fdf_footer = '] >> >>\nendobj\ntrailer\n>\n%%EOF'; $fdf_content = "/T(first_name) /V({$fname})\n/T(last_name) /V({$lname})\n/T(occupation) /V({$occupation})\n/T(age) /V({$age})\n/T(gender) /V({$gender})\n"; $content = $fdf_header . $fdf_content . $fdf_footer; $FDFfile = tempnam(sys_get_temp_dir(), gethostname()); file_put_contents($FDFfile, $content); exec("pdftk form.pdf fill_form {$FDFfile} output output.pdf"); unlink($FDFfile); ?>
This script creates a temporary FDF file, uses exec()
to run the PDFtk command, and then deletes the temporary file. The output.pdf
file will contain the filled form.
Flattening and Downloading:
To prevent further edits, add flatten
to the pdftk
command. To download directly, add headers to the PHP script:
// ... previous code ... exec("pdftk form.pdf fill_form {$FDFfile} output output.pdf flatten"); // ... download headers and readfile('output.pdf') ...
PDFtk Wrapper Class:
A more reusable approach involves creating a PHP class (PdfForm.php) to encapsulate the PDFtk interaction. This class would handle temporary file management, FDF creation, form filling, flattening, saving, and downloading. The usage would be significantly cleaner:
<?php require 'PdfForm.php'; $data = ['first_name' => 'John', 'last_name' => 'Smith', /* ... other fields */]; $pdf = new PdfForm('form.pdf', $data); $pdf->flatten()->save('output.pdf')->download(); ?>
This improved structure promotes code reusability and maintainability. The full class implementation details are omitted for brevity but are available in the original article's GitHub repository (as mentioned in the original text). The class would include methods for extracting field information (fields()
), creating the FDF file (makeFdf()
), and handling the PDFtk interaction.
Frequently Asked Questions (FAQs): The original article includes a comprehensive FAQ section addressing common issues and advanced usage scenarios, such as handling errors, filling multiple forms, and securing the output PDF. This information is omitted here for brevity but is available in the original text.
Atas ialah kandungan terperinci Mengisi borang PDF dengan PDFTK dan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Apa yang masih popular adalah kemudahan penggunaan, fleksibiliti dan ekosistem yang kuat. 1) Kemudahan penggunaan dan sintaks mudah menjadikannya pilihan pertama untuk pemula. 2) Bersepadu dengan pembangunan web, interaksi yang sangat baik dengan permintaan HTTP dan pangkalan data. 3) Ekosistem yang besar menyediakan banyak alat dan perpustakaan. 4) Komuniti aktif dan Sumber Sumber Terbuka menyesuaikan mereka dengan keperluan baru dan trend teknologi.

PHP dan Python adalah kedua-dua bahasa pengaturcaraan peringkat tinggi yang digunakan secara meluas dalam pembangunan web, pemprosesan data dan tugas automasi. 1.Php sering digunakan untuk membina laman web dinamik dan sistem pengurusan kandungan, sementara Python sering digunakan untuk membina kerangka web dan sains data. 2.Php Menggunakan Echo ke Kandungan Output, Python Menggunakan Cetakan. 3. Kedua-dua sokongan pengaturcaraan berorientasikan objek, tetapi sintaks dan kata kunci adalah berbeza. 4. PHP menyokong penukaran jenis lemah, manakala Python lebih ketat. 5. Pengoptimuman Prestasi PHP termasuk menggunakan OPCACHE dan pengaturcaraan asynchronous, manakala Python menggunakan pengaturcaraan CProfile dan tak segerak.

PHP terutamanya pengaturcaraan prosedur, tetapi juga menyokong pengaturcaraan berorientasikan objek (OOP); Python menyokong pelbagai paradigma, termasuk pengaturcaraan OOP, fungsional dan prosedur. PHP sesuai untuk pembangunan web, dan Python sesuai untuk pelbagai aplikasi seperti analisis data dan pembelajaran mesin.

PHP berasal pada tahun 1994 dan dibangunkan oleh Rasmuslerdorf. Ia pada asalnya digunakan untuk mengesan pelawat laman web dan secara beransur-ansur berkembang menjadi bahasa skrip sisi pelayan dan digunakan secara meluas dalam pembangunan web. Python telah dibangunkan oleh Guidovan Rossum pada akhir 1980 -an dan pertama kali dikeluarkan pada tahun 1991. Ia menekankan kebolehbacaan dan kesederhanaan kod, dan sesuai untuk pengkomputeran saintifik, analisis data dan bidang lain.

PHP sesuai untuk pembangunan web dan prototaip pesat, dan Python sesuai untuk sains data dan pembelajaran mesin. 1.Php digunakan untuk pembangunan web dinamik, dengan sintaks mudah dan sesuai untuk pembangunan pesat. 2. Python mempunyai sintaks ringkas, sesuai untuk pelbagai bidang, dan mempunyai ekosistem perpustakaan yang kuat.

PHP tetap penting dalam proses pemodenan kerana ia menyokong sejumlah besar laman web dan aplikasi dan menyesuaikan diri dengan keperluan pembangunan melalui rangka kerja. 1.Php7 meningkatkan prestasi dan memperkenalkan ciri -ciri baru. 2. Rangka kerja moden seperti Laravel, Symfony dan CodeIgniter memudahkan pembangunan dan meningkatkan kualiti kod. 3. Pengoptimuman prestasi dan amalan terbaik terus meningkatkan kecekapan aplikasi.

Phphassignificantelympactedwebdevelopmentandextendsbeyondit.1) itpowersmajorplatformslikeworderpressandexcelsindatabaseIntions.2) php'SadaptabilityAldoStoScaleforlargeapplicationFrameworksLikelara.3)

Jenis PHP meminta untuk meningkatkan kualiti kod dan kebolehbacaan. 1) Petua Jenis Skalar: Oleh kerana Php7.0, jenis data asas dibenarkan untuk ditentukan dalam parameter fungsi, seperti INT, Float, dan lain -lain. 2) Return Type Prompt: Pastikan konsistensi jenis nilai pulangan fungsi. 3) Jenis Kesatuan Prompt: Oleh kerana Php8.0, pelbagai jenis dibenarkan untuk ditentukan dalam parameter fungsi atau nilai pulangan. 4) Prompt jenis yang boleh dibatalkan: membolehkan untuk memasukkan nilai null dan mengendalikan fungsi yang boleh mengembalikan nilai null.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Dreamweaver Mac版
Alat pembangunan web visual

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.