如何在现有PDF上叠加HTML生成的PDF?

时间:2016-04-20 18:23:13

标签: php wkhtmltopdf tcpdf fpdf dompdf

我希望从一个初始PDF文件开始,一个包含图形和文本的文件,然后获取一些HTML代码,这些代码具有一些用户输入的动态值,生成为PDF,希望使用初始PDF作为一个背景,或以某种方式运行PHP脚本,然后“合并”两个PDF,其中一个作为背景的另一个。

我有一些代码可以呈现HTML格式的PDF :(使用DOMPDF)

arr

上面的代码采用html文件“file_html.html”并使用用户输入值进行字符串替换,将其呈现为名为“file_html_new.html”的新HTML文件,然后将该AS呈现为PDF。

我还有其他PHP代码通过将PDF作为初始源来呈现PDF :(使用FPDF)

     +---+
arr: | 6 | arr[0][0]
     +---+ 
     | 2 | arr[0][1]
     +---+
     | 3 | arr[1][0]
     +---+
     | 4 | arr[1][1]
     +---+

这需要一个已经存在的PDF“myPDF.pdf”,并将其用作背景,将一些传入值写入文档,并保存新生成的文档。

虽然这基本上就是我想要做的,但我需要使用html,因为文本的确切格式非常严格,而且几乎不可能通过手动绘制来实现。

我愿意使用DOMPDF,FPDF,FPDI,TCPDF或任何其他PHP资源来实现这一目标。

有没有办法融合我上面的两种方式?

1 个答案:

答案 0 :(得分:2)

当然,您也可以将不同的现有PDF文档与FPDI一起使用。这段代码应该向您展示这个概念(实际上我猜所有页面格式都是A4肖像):

<?php

$pdf = new FPDI();

// let's get an id for the background template
$pdf->setSourceFile('myPDF.pdf'); 
$backId = $pdf->importPage(1);

// iterate over all pages of HTML_Generated_pdf.pdf and import them
$pageCount = $pdf->setSourceFile('HTML_Generated_pdf.pdf');
for ($pageNo = 1; $pageNo <= $pageCount; $pageNo++) {
    // add a page
    $pdf->AddPage();
    // add the background
    $pdf->useTemplate($backId);
    // import the content page
    $pageId = $pdf->importPage($pageNo);
    // add it
    $pdf->useTemplate($pageId);
}

$pdf->Output();