使用FPDI打开PDF并向其写入文本

时间:2017-09-19 20:19:00

标签: php pdf fpdi

我正在尝试打开PDF并使用此库向其中添加文本:

https://www.setasign.com/products/fpdi/downloads/

这是演示代码:

https://www.setasign.com/products/fpdi/demos/simple-demo/#p-283

我已经在这里待了好几天了,而且我已经结束了。关于无法找到此文件或未定义该类的问题,这是一系列不间断的错误。有一种简单的方法可以只包含一个类文件并开始使用它吗?使用Composer似乎把很多文件放在一起,我几乎无法理解我应该做什么。

提前非常感谢你。

1 个答案:

答案 0 :(得分:0)

我会在这里尝试回答你的问题,因为我也在努力解决同样的事情。

所以,我开始下载FPDI,你已经完成了。经过努力,弄清楚为什么我无法让它工作,我发现我错过了另一个图书馆。所以,请转到此处:FPDF

下载后,将其包含在同一个文件夹中并包含它,你应该好好去。例如:

require_once("_include/fpdf/fpdf.php");
require_once("_include/fpdi/src/autoload.php");
use setasign\Fpdi\Fpdi;

一旦你在文件顶部有了这个,你可以尝试类似的东西:

$newfname = 'tempFile'.date("Y-m-d h:m:s").'.pdf';
   $file = fopen ($url, 'rb');
   if ($file) {
       $newf = fopen ("_data/$newfname", 'wb');
       if ($newf) {
           while(!feof($file)) {
               fwrite($newf, fread($file, 1024 * 8), 1024 * 8);
           }
       }
   }
   if ($file) {
       fclose($file);
   }
   if ($newf) {
       fclose($newf);
   }

   $pdfName = $filename.".pdf";
   $file = fopen("_data/$newfname", 'rb');
   if($file) {
       $newPdfF = fopen("_data/$pdfName", 'wb');
       if($newPdfF) {
           // Now let us use this file to try and remove the bottom logos.
           $pdf = new Fpdi();
           $pageCount = $pdf->setSourceFile($file);
           // Iterate through our pages
           for($pageNo = 1; $pageNo <= $pageCount; $pageNo++) {
               // import our page
               $templateId = $pdf->importPage($pageNo);
               // Add our new page
               $pdf->AddPage();

               $pdf->useTemplate($templateId, ['w'=>200, 'h'=>200]);
               $pdf->SetFont('Helvetica');
               $pdf->setX(170);
               $pdf->Write(0, $fileDateRun); // For writing text
               $pdf->Image('images/image.png', 0, 257); // For writing an image
          }
          $pdf->Output('D', "_data/$pdfName");
          unlink("_data/$newfname"); // delete temp file
          unlink("_data/$pdfName"); // delete the other temp file
      }
  }

我希望这会对你有所帮助。