我是使用 FPDF / FPDI 的新手。我的前任在這里擴展了 FPDF 類,我將添加到他的代碼中以編輯他的 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);
}
uj5u.com熱心網友回復:
這行得通!看起來我需要 importPage 的第二個引數來定義邊界框
function SeedlingSheet($seedlingInfo=array()) {
$pageCount = $this->setSourceFile(FCPATH.'fhm_template/MAFHM_Microplot_SeedlingForm.pdf');
$pageId = $this->importPage(1, \setasign\Fpdi\PdfReader\PageBoundaries::MEDIA_BOX);
$this->AddPage();
$this->useTemplate($pageId, 0, 0);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/462043.html
上一篇:從pdf檔案中獲取資料
