使用PHP可以將FDF數據與PDF文件合併在一起嗎?或者是沒有選擇,只能使用第三方命令行工具來實現這一目標?使用PHP將FDF數據合併到PDF文件中
如果是這樣的話,有人能指出我的方向嗎?
我目前正在向瀏覽器輸出FDF文件,希望它會將用戶重定向到填充的PDF,但對於某些情況並非如此。即使我正在使用標題('Content-type:application/vnd.fdf'),FDF內容正在輸出到屏幕。
使用PHP可以將FDF數據與PDF文件合併在一起嗎?或者是沒有選擇,只能使用第三方命令行工具來實現這一目標?使用PHP將FDF數據合併到PDF文件中
如果是這樣的話,有人能指出我的方向嗎?
我目前正在向瀏覽器輸出FDF文件,希望它會將用戶重定向到填充的PDF,但對於某些情況並非如此。即使我正在使用標題('Content-type:application/vnd.fdf'),FDF內容正在輸出到屏幕。
爲了將來的參考,它看起來像沒有一個可靠的方式做沒有第三方應用程序。 Pdftk(http://www.accesspdf.com/pdftk/)最終成爲我的解決方案。
我第一次產生的FDF像以前的文件,然後使用下面的PHP代碼
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="Download.pdf"');
passthru("pdftk file.pdf fill_form data.fdf output - ");
exit;
它比我想象的要容易得多合併到我的PDF文件。這立即消除了對標題和文件擴展名的破解,以確保所有瀏覽器正確處理FDF,因爲它只是使瀏覽器下載PDF文件。
如果你想在PDF輸出文件不再是可編輯的,使用
passthru("pdftk file.pdf fill_form data.fdf output - flatten");
道歉,如果這是基本的東西,只是覺得應該把它們都放在一個地方,讓人們不要去通過我忍受的頭痛。
N.B.如果沒有設置PATH變量,你需要使用的完整路徑PDFTK即
passthru("/usr/local/bin/pdftk file.pdf fill_form data.fdf output - flatten");
迄今爲止我發現在CentOS安裝PDFTK最簡單的方法:
安裝rpmforge軟件庫 - http://wiki.centos.org/AdditionalResources/Repositories/RPMForge#head-5aabf02717d5b6b12d47edbc5811404998926a1b
然後
百勝安裝PDFTK
和完蛋了!
不再支持CentOS 7 – 2016-04-23 18:21:36
http://www.setasign.de/products/pdf-php-solutions/fpdi/demos/concatenate-fake/
這工作,類下載鏈接,從網站上也
它不需要中繼/ exec命令並沒有額外的擴展。
編輯說,這不適用於較新的pdf版本1.5+,恢復爲PDFTK,很費勁,但使用'exec'命令處理所有pdf。
還有另一種方式來一天,不使用中繼也不PDFTK只是一個腳本,在2004年,但仍然正常工作:forge_fdf
它可以幫助你建立一個FDF,你可以在你的PDF straithly incoporate,它意思是你
保存在一個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
Forge_fdf for PHP也由PDF Labs(Pdftk的創建者)編寫,我相信。 – BMiner 2011-05-13 14:39:47
更多的相關信息我已經做到了現在,由於 – James 2009-09-14 11:09:26
哇,對我幫助很大! – Strae 2010-01-26 13:13:39
應該注意的是'fill_form'也適用於XFDF數據。如果您需要在生成的PDF中包含可編輯和只讀字段的組合,請在生成PDF時爲要填寫的字段設置「只讀」屬性。只讀字段將由PDFTK填充,但不能由最終用戶編輯。 – Kenaniah 2011-04-04 18:04:12