如果可能的话,阅读现有的PDF内容位置,并在laravel中的现有内容之上添加一些内容?

如果可能的话,阅读现有的PDF内容位置,并在laravel中的现有内容之上添加一些内容?,laravel,pdf,laravel-5,fpdf,fpdi,Laravel,Pdf,Laravel 5,Fpdf,Fpdi,拉维包装: “setasign/fpdi”:“^2.3”, “setasign/fpdf”:“^1.8” $pdf=new\setasign\Fpdi\Fpdi('L','mm','A4'); $pageCount=$pdf->setSourceFile(public_path()./'.$url); $pdf->setFont('Arial','B',10); 对于($i=1;$i进口页($i); $pageDimensions=$pdf->getImportedPageSize($tplId

拉维包装: “setasign/fpdi”:“^2.3”, “setasign/fpdf”:“^1.8”

$pdf=new\setasign\Fpdi\Fpdi('L','mm','A4');
$pageCount=$pdf->setSourceFile(public_path()./'.$url);
$pdf->setFont('Arial','B',10);
对于($i=1;$i进口页($i);
$pageDimensions=$pdf->getImportedPageSize($tplIdx);
$pdf->addPage($pageDimensions['orientation',$pageDimensions);
$pdf->useTemplate($tplIdx);
}

如果可能,请阅读最后一页的内容,并获取当前位置的页面内容坐标。然后在不添加新页面或空白的情况下写入新内容,如果使用DomPdf生成Pdf,则可以使用

$pdf->getDomPDF()->outputHtml()

使用DomPDF生成的html文件添加如下元素:

然后,无论何时需要编辑此文档,都需要逐行读取HTML文件并 编辑文档:

$url=public_path() .'/test.html';
$htmlFile='';
foreach(file($url) as  $key => $line){
  if(strpos($line, 'id="divId"') !== false){
    $line='<div>Hello world</div>';
  }
  $htmlFile.=$line;
}
$pdf = PDF::loadHTML($htmlFile)->setPaper('a4', 'landscape');
$pdf->output();
$url=public_path()。/test.html';
$htmlFile='';
foreach(文件($url)为$key=>$line){
if(strpos($line,'id=“divId”')!==false){
$line='Hello world';
}
$htmlFile.=$line;
}
$pdf=pdf::loadHTML($htmlFile)->setPaper('a4','scape');
$pdf->output();

基本上,您希望附加到以前的PDFYE,我需要位置的最后一行。FPDI不支持访问页面内容。但在此代码中,pageCount工作正常,只需要最后一行位置,然后在写入新内容后,“最后一行位置”是(如果我理解正确)通过呈现导入页面的文本来解析的信息。FPDI不支持该信息。
$url=public_path() .'/test.html';
$htmlFile='';
foreach(file($url) as  $key => $line){
  if(strpos($line, 'id="divId"') !== false){
    $line='<div>Hello world</div>';
  }
  $htmlFile.=$line;
}
$pdf = PDF::loadHTML($htmlFile)->setPaper('a4', 'landscape');
$pdf->output();