Объединить данные FDF в файл PDF с помощью PHP

Возможно ли объединить данные FDF с файлом PDF, используя только PHP? Или нет никакого варианта, кроме как использовать сторонний инструмент командной строки для этого?

Если это так, кто-то может указать мне в сторону одного?

В настоящее время я выводил файл FDF в браузер, надеясь, что он перенаправит пользователя в заполненный PDF-файл, но для некоторых людей это не так. Содержимое FDF выводится на экран, хотя я использую заголовок ('Content-type: application / vnd.fdf');

Solutions Collecting From Web of "Объединить данные FDF в файл PDF с помощью PHP"

В будущем, похоже, нет надежного способа сделать это без стороннего приложения. Pdftk ( http://www.accesspdf.com/pdftk/ ) оказался моим решением.

Сначала я сгенерировал файл FDF, как и раньше, а затем объединил его в свой файл PDF, используя следующий код PHP

header('Content-type: application/pdf'); header('Content-Disposition: attachment; filename="Download.pdf"'); passthru("pdftk file.pdf fill_form data.fdf output - "); exit; 

Это было намного легче, чем я думал. Это мгновенно устраняет необходимость взломать заголовки и расширения файлов, чтобы гарантировать, что все браузеры обрабатывают FDF правильно, поскольку это просто заставляет браузер загружать PDF-файл.

Если вы хотите, чтобы выходной файл PDF больше не редактировался, используйте

  passthru("pdftk file.pdf fill_form data.fdf output - flatten"); 

Извиняюсь, если это основной материал, просто подумал, что я бы поставил все это в одном месте, чтобы люди не переживали головную боль, которую я терпел.

NB Если ваша переменная PATH не установлена, вам нужно будет использовать полный путь к pdftk, т.е.

  passthru("/usr/local/bin/pdftk file.pdf fill_form data.fdf output - flatten"); 

Есть еще один способ, чтобы не использовать passthru или pdftk, а просто скрипт, сделанный в 2004 году, но все еще хорошо работает: forge_fdf

это поможет вам построить fdf, который вы можете легко форматировать в своем pdf-формате, это означает, что вы

Сохраните это в php-файле, скажем, generatePdf.php

 require_once('forge_fdf.php'); // leave this blank if we're associating the FDF w/ the PDF via URL $pdf_form_url= ""; // default data; these two arrays must ultimately list all of the fields // you desire to alter, even if you just want to set the 'hidden' flag; // // $fdf_data_names= array(); // none of these in this example $fdf_data_strings= array(); // none of these in this example $fdf_data_strings['email']=mb_strtolower($row_delivreur['firstname']).'.'.mb_strtolower($row_delivreur['lastname']).'@gmail.com'; $fields_hidden= array(); $fields_readonly= array(); // set this to retry the previous state $retry_b= false; header( 'content-type: application/vnd.fdf' ); echo forge_fdf( $pdf_form_url, $fdf_data_strings, $fdf_data_names, $fields_hidden, $fields_readonly ); 

Сделав ссылку на Pathtoyourpdf / nameofpdffile.pdf # FDF = generatePdf.php откроет ваш PDF-файл в браузере (альтернативно, есть способ сохранить его на диске, я думаю, что я помню), и полевое письмо будет заполнено данными из MYSQL: mb_strtolower($row_delivreur['firstname']).'.'.mb_strtolower($row_delivreur['lastname']).'@gmail.com'

Он работает с флажками, переключателем, … Он хорошо открывается в firefox, его нужно протестировать с другими браузерами.

Дополнительная информация о PDF HACKS

безусловно, самый простой способ установить pdftk на centos:

Установите rpmforge repo – http://wiki.centos.org/AdditionalResources/Repositories/RPMForge#head-5aabf02717d5b6b12d47edbc5811404998926a1b

тогда

yum install pdftk

вот и все!

http://www.setasign.de/products/pdf-php-solutions/fpdi/demos/concatenate-fake/

Это работает, загрузка классов также связана с веб-сайтом,

Он не требует команды passthru / exec и дополнительных расширений.

Отредактировано, что это не работает с более новыми версиями PDF версии 1.5+, вернувшимися к PDFTK, но в то же время работает со всеми pdf-файлами с помощью команды «exec».