it-swarm-vi.com

Điền PDF Biểu mẫu với PHP

Có PHP thư viện có thể được sử dụng để điền PDF biểu mẫu và sau đó lưu (làm phẳng) chúng vào PDF?

47
mno

Các thư viện và khung được đề cập ở đây là tốt, nhưng nếu tất cả những gì bạn muốn làm là điền vào một biểu mẫu và làm phẳng nó, tôi khuyên bạn nên sử dụng công cụ dòng lệnh có tên pdftk (Bộ công cụ PDF).

Xem https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/

Bạn có thể gọi dòng lệnh từ php và lệnh này là

pdftk formfile.pdf fill_form fieldinfo.fdf output outputfile.pdf flatten

Bạn sẽ cần tìm định dạng của tệp FDF để tạo thông tin để điền vào các trường. Đây là một liên kết tốt cho điều đó:

http://www.tgreer.com/fdfServe.html

[Chỉnh sửa: Liên kết trên dường như không còn hoa hồng. Dưới đây là một số thông tin nhiều hơn nữa...]

Lệnh pdftk có thể tạo tệp FDF từ tệp biểu mẫu PDF. Sau đó, bạn có thể sử dụng tệp FDF được tạo làm mẫu. Các trường biểu mẫu là một phần của tệp FDF trông giống như

...
<< /T(f1-1) /V(text of field) >>
<< /T(f1-2) /V(text of another field) >>
...

Bạn cũng có thể kiểm tra php-pdftk , đây là một thư viện dành riêng cho PHP. Tôi chưa sử dụng nó, nhưng bình luận viên Álvaro (bên dưới) khuyên bạn nên dùng nó.

47
bmb

+1 lớn cho câu trả lời được chấp nhận và một mẹo nhỏ nếu bạn gặp phải vấn đề mã hóa với tệp fdf. Nếu bạn tạo các trường.fdf và khi chạy

file -bi fields.fdf

bạn lấy

application/octet-stream; charset=binary

sau đó rất có thể bạn gặp phải vấn đề về bộ ký tự UTF-16. Hãy thử chuyển đổi ftf bằng phương tiện

cat fields.fdf | sed -e's/\x00//g' | sed -e's/\xFE\xFF//g' > better.fdf

Sau đó tôi đã có thể chỉnh sửa và nhập tệp better.fdf vào biểu mẫu PDF.

Hy vọng rằng điều này sẽ cứu ai đó một số Google-ing

5
Val Redchenko

tạo tập tin fdf bằng php: see http://www.php.net/manual/en/book.fdf.php

sau đó điền nó vào pdf với pdftk (xem bên trên)

3
proofy

Dành cho:

  • Định dạng đầu vào dễ dàng hơn XFDF
  • Hỗ trợ UTF-8 (tiếng Nga) thực sự
  • Hoàn thành ví dụ sử dụng php

Vui lòng kiểm tra PdfFormFillerUTF-8 của tôi .

3
Nikolay

Tôi đã thành công với việc sử dụng một biểu mẫu gửi đến tập lệnh php sử dụng fpdf và chuyển vào các trường biểu mẫu dưới dạng các biến (có thể không phải là cách thực hành tốt nhất, nhưng nó hoạt động tốt).

 <?php
require('fpdf.php');
$pdf=new PDF();
$pdf->AddPage();
$pdf->SetY(30);
$pdf->SetX(100);
$pdf->MultiCell(10,4,$_POST['content'],0,'J');
$pdf->Output();
?>

và bạn có thể có một cái gì đó như thế này.

  <form action="fooPDF.php" method="post">
     <p>PDF CONTENT: <textarea name="content" ></textarea></p>
     <p><input type="submit" /></p>
    </form>

Ví dụ về bộ xương này phải giúp bạn bắt đầu.

3
josh.chavanne

Tôi đã viết một thư viện Perl, CAM :: PDF , với giao diện dòng lệnh có thể giải quyết điều này. Tôi đã thử sử dụng giải pháp FDF nhiều năm trước, nhưng thấy nó quá phức tạp, đó là lý do tại sao tôi đã viết CAM :: PDF ngay từ đầu. Thư viện của tôi sử dụng một vài phương pháp phỏng đoán để thay thế biểu mẫu bằng văn bản mong muốn, vì vậy nó không hoàn hảo. Nhưng nó hoạt động hầu hết thời gian, và nó nhanh, miễn phí và khá đơn giản để sử dụng.

1
Chris Dolan

Có vẻ như điều này đã được bao phủ trước đó . Nhấp qua để biết mã có liên quan bằng cách sử dụng Zend Framework PDF thư viện.

1
pix0r

Chúng tôi sử dụng PDFLib tại nơi làm việc. Phiên bản trả phí không quá đắt và có phiên bản nguồn mở hạn chế hơn, nếu bạn không thể Shell ra phiên bản trả phí.

1
foxxtrot