尝试将PDF导入FPDF/FPDI添加空白页



我是FPDF/FPDI的新手。我的前任扩展了FPDF类,我将添加到他的代码中,以编辑他的PDF并制作新的PDF。我已经能够通过使用FPDF将数据库中的值写入空白页来创建我想要制作的PDF的前3页。一切都好!

现在我想导入一个现有的单页PDF作为第4页,并在上面写一些东西,看起来我需要FPDI来做到这一点。

我在这里使用了这个例子:https://www.setasign.com/products/fpdi/about正如另一篇帖子所建议的那样。然而,它只是在我的PDF末尾添加了一个空白页面。

我已经写下了我想导入日志的PDF的路径,并确保它是正确的(我在php日志中也没有收到任何错误,如果找不到PDF,我会预料到(。

我将pdf初始化为FPDF,而不是FPDI,所以这可能是问题所在?但是,如果我将其初始化为FPDI,那么我会得到一个错误,即我的方法是未定义的,因为它们是扩展FPDF类定义的。所以我不知道该怎么做我想做的事。。。我需要重新定义我的类来扩展FPDI吗?我只是担心这会破坏已经使用一些相同方法创建的PDF。我也没有得到任何关于使用像useImportedPage这样的FPDI方法的错误。。。所以我觉得也许这不是问题所在?

对不起,如果我没有很好地解释,如果你有问题,请告诉我。以下是相关代码:

require_once(APPPATH.'libraries/fpdf/fpdf.php');    
require_once(APPPATH.'libraries/fpdi/autoload.php');
require_once(APPPATH.'libraries/fpdi/Fpdi.php');
public function make_fieldpacketMA(){
$plotID=$this->input->get('PlotID');
$year=$this->input->get('Year');
$pdf = new PDF('P','in','Letter');
// Make additional info first page- this works!
$additional_info=$this->fhm_model->get_additionalplotinfo($plotID, "MA");  
$pdf->AdditionalInfoSheet($additional_info, $pdf);
//make plot info pages (same as subplot info pages on VT style plots)- this works!
$plotInfo=$this->fhm_model->get_sheetinfoMA($plotID,$year);
$pdf->SubplotSheet($plotInfo, "MA", $pdf);

//make seedling sheet from existing template- this does not work
$seedlingInfo=$this->fhm_model->get_seedlingInfo($plotID, $year);
$pdf->SeedlingSheet($seedlingInfo, $pdf);

//Write the output
$rand=uniqid();
$filename='./fhm_sheets/PlotPacket_'.$rand.'.pdf';
$pdf->Output($filename,"F");
$this->load->helper('download');

$data = file_get_contents($filename);
force_download($plotID.'_'.($year+1).'_FHMPlotPacket.pdf',$data); 
}
//Create PDF creation class
class PDF extends PDF_Rotate{

function SeedlingSheet($seedlingInfo=array()) {
$pageCount = $this->setSourceFile(FCPATH.'fhm_template/MAFHM_Microplot_SeedlingForm.pdf');
$pageId = $this->importPage(1);
$this->AddPage();
// $this->useTemplate($pageId);
$this->useImportedPage($pageId, 10, 10, 90);
}

这很管用!看起来我需要importPage的第二个参数来定义边界框

function SeedlingSheet($seedlingInfo=array()) {
$pageCount = $this->setSourceFile(FCPATH.'fhm_template/MAFHM_Microplot_SeedlingForm.pdf');
$pageId = $this->importPage(1, setasignFpdiPdfReaderPageBoundaries::MEDIA_BOX);
$this->AddPage();
$this->useTemplate($pageId, 0, 0);
}