【问题标题】:How to write on existing pdf file in php如何在php中写入现有的pdf文件
【发布时间】:2021-11-22 23:54:32
【问题描述】:

我知道这个问题已经被问过很多次了,但是我阅读了所有相关的答案,我的问题还没有解决。我可以通过下面的代码在新的空白 pdf 文件上添加文本和图像。

<?Php
require('fpdf.php');
$pdf = new FPDF('P','mm','A4');
$pdf->AddPage();

/* $pdf->setSourceFile("test1.pdf"); */

$pdf->SetFont('Helvetica');
$pdf->SetTextColor(255, 0, 0);
$pdf->SetXY(0, 5);
$pdf->Write(0, 'This is just a simple text');

$pdf->Image('sample.png',100,0);
$pdf->Output('file.pdf','F');
?>

但是当我取消注释 /* $pdf-&gt;setSourceFile("sourse.pdf"); */ 以在现有 pdf 上添加文本和图像时,我得到 未捕获的错误:调用未定义的方法 FPDF::setSourceFile() . 还有添加时

require('fpdi.php');
$pdf = new FPDI('P','mm','A4');

我得到未捕获的错误:找不到类“setasign\Fpdi\FpdfTpl”。 我该如何解决这个问题?

【问题讨论】:

  • 在第一个错误中,您似乎缺少FPDI。在第二个中,您似乎缺少FPDF。这些错误似乎与此假设一致,并且您的 require 语句似乎也同意。

标签: php pdf fpdf tcpdf fpdi


【解决方案1】:

您必须设置源文件,然后通过这种方式从源文件导入页面到新创建的文件,您可以对其进行编辑。更多详情请发邮件至https://www.webniraj.com/2016/09/12/creating-editing-a-pdf-using-php/

    // Create new Landscape PDF
$pdf = new FPDI('l');

// Reference the PDF you want to use (use relative path)
$pagecount = $pdf->setSourceFile( 'certificate.pdf' );

// Import the first page from the PDF and add to dynamic PDF
$tpl = $pdf->importPage(1);
$pdf->AddPage();

// Use the imported page as the template
$pdf->useTemplate($tpl);

// render PDF to browser
$pdf->Output();

【讨论】:

  • 感谢您的回答,但正如我所说,我在 ``` $pdf = new FPDI('l'); ```如果这个问题得到解决,我会添加首页模板等。
  • 您必须为该作曲家安装 lib 需要 setasign/fpdf setasign/fpdi-fpdf 查找更多详细信息github.com/Setasign/FPDI
  • 我阅读了参考资料,上面写着:如果你不使用作曲家,只需要 /src 文件夹中的 autoload.php:require_once('src/autoload.php');。我这样做了,但我遇到了未捕获的错误:在中找不到类“setasign\Fpdi\FpdfTpl”
  • Foramkumar Patel 我真的不知道要安装什么以及如何安装。我是初学者。你能告诉我该怎么做吗?
猜你喜欢
  • 2021-11-30
  • 1970-01-01
  • 2012-03-24
  • 2016-08-06
  • 1970-01-01
  • 2011-06-19
  • 2010-12-18
  • 2011-05-19
  • 2018-09-23
相关资源
最近更新 更多