TCPDF?
を使用して、既存のpdf
ファイルを新しく作成したpdf
にインポートするにはどうすればよいですか。
したがって、現在請求書セクションを実行していると仮定します。ユーザーが[請求書の印刷]をクリックしたら、データの収集を開始し、PDF
を使用してTCPDF
を作成します。ただし、可能であれば、別の既存のPDFを添付」する必要があります。したがって、1つの請求書ファイルでTCPDF
から生成されたものが5ページで構成されているとします。このファイルに別の既存のPDF
を「添付」する必要があります。したがって、既存のPDF
ファイルによって異なりますが、合計は6ページ以上になります。既存のPDFファイルはユーザーによってアップロードされるため、既存のPDF
ファイルが最初にアップロードされ、次に新しく生成された請求書ファイルに追加されます。
それを達成する方法はありますか?
これは、 [〜#〜] fpdi [〜#〜] を追加することで実現できます。
<?php
require_once('tcpdf.php');
require_once('fpdi.php');
$pdf = new FPDI();
//Merging of the existing PDF pages to the final PDF
$pageCount = $pdf->setSourceFile('existing_pdf.pdf');
for ($i = 1; $i <= $pageCount; $i++) {
$tplIdx = $pdf->importPage($i, '/MediaBox');
$pdf->AddPage();
$pdf->useTemplate($tplIdx);
}
//Your code relative to the invoice here
$pdf->Output();
私は同様の問題を解決していましたが、PHPのGhostScriptを使用してPDFをマージすることになりました。
exec('gs -o ' . $merged_path
. ' -sDEVICE=pdfwrite -dDPFSETTINGS=/prepress '
. $first_pdf_path . ' '
. $attachment_path);
それは数年間うまく機能しています。
TCPDI(TCPDFの拡張機能)を使用しました。 github https://github.com/pauln/tcpdi で見つけることができます。作曲家の準備ができているフォークもあります。
使い方は簡単です... TCPDIはTCPDFを拡張するため、コンストラクターのパラメーターは同じです
$pdf = new TCPDI(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
次に、ページの後に既存のpdfファイルからページを追加します
$pagecount = $pdf->setSourceFile($existingPdfPath);
for ($i = 1; $i <= $pagecount; $i++) {
$tplidx = $pdf->importPage($i);
$pdf->AddPage();
$pdf->useTemplate($tplidx);
}