我正在寻找一个最初的PDF文件,一个有图形和文本,然后采取一些HTML代码,其中有一些用户输入的动态值,生成一个PDF格式,希望或者使用最初的PDF作为背景,或者以某种方式运行PHP脚本,然后将两个PDF作为另一个背景的“合并”。如何在现有PDF上叠加HTML生成的PDF?
我有一些代码,生成一个HTML格式的PDF:(使用DOMPDF)
$initialpdf = file_get_contents('file_html.html');
$initialpdf = str_replace(array(
'%replaceText1%',
'%replaceText2%'
), array (
$replaceText1,
$replaceText2,
), $initialpdf);
$fp = fopen('file_html_new.html','w');
file_put_contents('file_html_new.html', $initialpdf);
require_once("dompdf/dompdf_config.inc.php");
spl_autoload_register('DOMPDF_autoload');
function pdf_create($html, $filename, $paper, $orientation, $stream=TRUE)
{
$dompdf = new DOMPDF();
$dompdf->set_paper($paper,$orientation);
$dompdf->load_html($html);
$dompdf->render();
$pdf = $dompdf->output();
@file_put_contents($filename . ".pdf", $pdf);
}
$filename = 'HTML_Generated_pdf';
$dompdf = new DOMPDF();
$html = file_get_contents('file_html_new.html');
pdf_create($html,$filename,'Letter','landscape');
上面的代码需要的HTML文件“file_html.html”并执行串替换与用户输入的值,呈现此作为新的名为“file_html_new.html”的HTML文件,然后将其呈现为PDF。
我也有其他的PHP代码由具有PDF作为初始源呈现一个PDF:(使用FPDF)
<?php
ob_clean();
ini_set("session.auto_start", 0);
define('FPDF_FONTPATH','font/');
define('FPDI_FONTPATH','font/');
require('fpdf.php');
require('fpdi.php');
$pdf = new FPDI();
$pdf->setSourceFile("/home/user/public_html/wp-content/myPDF.pdf");
$tplIdx = $pdf->importPage(1);
$specs = $pdf->getTemplateSize($tplIdx);
$pdf->addPage($specs['h'] > $specs['w'] ? 'P' : 'L', 'Letter');
$pdf->useTemplate($tplIdx, 0, 0);
$pdf->SetFont('helvetica');
$pdf->SetXY(30, 30);
$pdf->Write(0, $replaceText1);
ob_end_clean();
$pdf->Output('New_Generated_PDF.pdf', 'F');
?>
这需要一个已经存在的PDF,“myPDF.pdf”,并使用它作为背景,写一些有价值的文件,并保存新生成的文件。
虽然这基本上是我想要做的,但我需要使用html,因为文本的确切格式变得严格,几乎不可能通过手动绘制文本来完成。
我打算使用DOMPDF,FPDF,FPDI,TCPDF或任何其他PHP资源来完成此操作。
有没有办法融合上述两种方式?
我推荐一个基于会话的文件名。当用户提交表单时,他/她在服务器上创建一个PDF文件。文件名将是用户会话。使用[scandir()](php.net/manual/en/function.scandir.php)或file_exists()检查该特定用户是否有任何PDF,并显示所有的pdf文件;如果具有该用户会话的文件存在,请使用另一个提交按钮将文件名转换为第二个代码。 –
@MawiaHL这不是我的问题的根源,它已经保存为基于会话的文件名,并带有动态文件名加载项。问题是在另一个PDF上渲染一个PDF。意思是1页+ 1页= 1页的方式,而不是单个渲染。 – NoReceipt4Panda