我首先使用fpdi导入pdf来制作一个fpdf对象,然后我对该pdf执行了一些更改。我克隆它来制作一个自定义pdf只添加一些文本。然后我将两个文件输出到磁盘,但只创建了一个,我得到了第二个输出的致命错误:
致命错误:在 C:\ Program Files \ EasyPHP 3.0 \ www \ oursin \ oursin \ public \ scripts \ FPDI \ fpdi中调用未定义的方法stdClass :: closeFile()。 php 在线 534
我的代码:
$pdf = new FPDI('L','mm',array(291.6,456));
$fichier=$repertoireGrilles.'GR_IFR.pdf';
$pdf->setSourceFile($fichier);
// add a page
$tplIdx = $pdf->importPage(1);
$pdf->AddPage();
$pdf->useTemplate($tplIdx,0,0,0);
..
...
methods on $pdf
..
..
..
$pdfCopie=clone $pdf;
methods on $pdfCopie
$pdfCopie-> Output($repertoireGrilles.'grillesQuotidiennes/'.$date.'/Grille_'.$date.'_'.$ou.'_copie.pdf','F');
$pdf-> Output($repertoireGrilles.'grillesQuotidiennes/'.$date.'/Grille_'.$date.'_'.$ou.'.pdf','F');
有人帮我解决这个让我的大脑长时间处于高压状态的问题:)?
答案 0 :(得分:1)
克隆,分叉,复制,其中任何一个都很脏。如果采取这种方式,你将很难获得输出。相反,请考虑这种方法:
pid
值,以便区分它们。pid
并在完成所有设置后对不同的文档执行不同的操作。这是我的jQuery:
$(document).ready(function(){
var i;
for( i=0; i<=1; i++ )
{
$.ajax({
url: 'pdfpid.php',
data: {
pid: i,
pdf: 'document.pdf'
},
type: 'post'
});
}
});
正如您所看到的,它非常简单。 pdfpid.php
是将生成和处理文档的文件的名称。在这种情况下,我希望pid
为0的文档是我的“原始”,而pid
为1的文档是“克隆”文档。
// Ensure that POST came in correctly
if( !array_key_exists('pid',$_POST) || !array_key_exists('pdf',$_POST) )
exit();
// Populate necessary variables from $_POST
$pid = intval($_POST['pid']);
$src = $_POST['pdf'];
// Setup the PDF document
$pdf = new FPDI();
$pdf->setSourceFile($src);
$templateID = $pdf->importPage(1);
$pdf->addPage();
$pdf->useTemplate($templateID);
$pdf->SetFont('Arial','B',24);
switch( $pid )
{
default:
break;
case 0:
// "Parent" document
$pdf->Text(10,10,"ORIGINAL");
$filename = "original.pdf";
break;
case 1:
// "Child" document
$pdf->Text(10,10,"CLONED");
$filename = "cloned.pdf";
break;
}
$pdf->Output($filename,'F');
我将这两个文件作为输出,“父母”和“孩子”之间的独特修改都已到位。