我會首先說我可以使用mPDF生成PDF文件,但是對於我而言,我無法將其與現有的PDF合併爲PDF文件剛生成。PHP - 如何使用mPDF合併PDF
我需要弄清楚的是如何在新生成的PDF中附加/添加現有PDF。我一直在使用導入頁面MPDF方法試過,但我能得到的是一個錯誤,如:
mPDF error: Cannot open '/downloads/test.pdf'.
上述消息是含糊不清,爲什麼它不能打開文件... 這裏是我用來嘗試和合並PDF的代碼:
include_once("./pdf/mpdf/mpdf.php");
$output_file = $_GET['output_file'];
$url = $_GET['input_file'];
$technical_drawing = $_GET['tech_drawing'];
$html = file_get_contents($url);
$mpdf = new mPDF('utf-8','Letter','','',0,0,0,0,0,0,'P');
$mpdf->SetImportUse();
$pagecount = $mpdf->SetSourceFile($technical_drawing);
$tplIdx = $mpdf->ImportPage($pagecount);
$mpdf->UseTemplate($tplIdx);
$mpdf->WriteHTML($html);
$mpdf->Output($output_file, 'D');
exit;
$ output_file將顯示給用戶的文件名。 $ url是我們在生成PDF時寫入文件的HTML。 $ technical_drawing是我們想要使用生成的PDF添加/合併PDF的相對路徑。
我知道我可以使用類似ghostscript的東西,但我沒有在客戶端的服務器上訪問這種類型的東西。
讓我知道是否有人找到了使用mPDF的解決方案,或者如果我是S.O.L.並需要找到另一個庫來完成PDF合併。我真的在尋找解決方案或建議,但不只是鏈接到另一個圖書館。我已經用盡了我在Google或mPDF的文檔中找到的描述我遇到的錯誤的內容。
編輯:將mPDF錯誤從http://example.com/pdf/example.pdf更改爲'/downloads/test.pdf'。
EDIT_2:已修復代碼以採取相對路徑。
這是最後的工作代碼。如果有人知道如何指定將HTML寫入PDF文檔,將頁面導入爲最後一頁(具有與HTML不同的自定義頁面大小),則可獲得獎勵。
include_once("./pdf/mpdf/mpdf.php");
$output_file = 'test-' . $_GET['output_file'];
$url = $_GET['input_file'];
$technical_drawing = $_GET['tech_drawing'];
$html = file_get_contents($url);
if(!file_exists($technical_drawing)) {
$mpdf = new mPDF('utf-8','Letter','','',0,0,0,0,0,0,'L');
} else {
$mpdf = new mPDF('utf-8','A3-L','','',0,0,0,0,0,0,'L');
$mpdf->SetImportUse();
$pagecount = $mpdf->SetSourceFile($technical_drawing);
$import_page = $mpdf->ImportPage();
$mpdf->UseTemplate($import_page);
// Add Last page
$mpdf->AddPageByArray(array(
'orientation' => 'P',
'ohvalue' => 1,
'ehvalue' => -1,
'ofvalue' => -1,
'efvalue' => -1,
'newformat' => 'Letter'
));
}
$mpdf->WriteHTML($html);
$mpdf->Output($output_file, 'D');
exit;
其中URL'HTTP :// example.com/pdf/example.pdf'來自? – zerkms 2014-10-16 21:38:34
你應該給本地文件路徑沒有url – 2014-10-16 21:38:51
@zerkms - 對不起,澄清,它不是example.com。我的網址被設置爲像「/downloads/test.pdf」這樣的本地路徑。 – cvanorman 2014-10-16 21:49:34