如何使用 FPDI 和 TCPDF 实现 ImageSVG() 渲染 PDF?

How to implement ImageSVG() using FPDI and TCPDF to render PDF?

我正在使用 FPDI 渲染一个 PDF,该 PDF 将 PDF 设置为背景,但想要在其上包含一个 SVG 文件,由于某种原因,这在我使用 TCPDF 库时出现了错误。有没有解决办法,或者我的代码不正确。

(在我输入 "ImageSVG" 和 "require('tcpdf.php')" 行之前,它工作得很好)

这是我的 PHP 代码:

ob_clean();
ini_set("session.auto_start", 0);
define('FPDF_FONTPATH','font/');
define('FPDI_FONTPATH','font/');
require('fpdf.php');
require('fpdi.php');
require('tcpdf.php');

$pdf = new FPDI();

// let's get an id for the background template
$pdf->setSourceFile('/home/user/public_html'.$pdfName);
$backId = $pdf->importPage(1);

// iterate over all pages of HTML_Generated_pdf.pdf and import them
$pageCount = $pdf->setSourceFile('/home/user/public_html/wp-content/themes/myTheme/'.$filename.'.pdf');
for ($pageNo = 1; $pageNo <= $pageCount; $pageNo++) {
    // add a page
    $pdf->AddPage($specs['h'] > $specs['w'] ? 'P' : 'L', 'Letter');
    // add the background
    $pdf->useTemplate($backId);
    // import the content page
    $pageId = $pdf->importPage($pageNo);
    // add it
    $pdf->useTemplate($pageId);

    $pdf->ImageSVG($file='images/EN-Logo.svg', $x=30, $y=100, $w='', $h=100, $link='', $align='', $palign='', $border=0, $fitonpage=false);
}

$pdf->Output($filename.'2.pdf', 'F');

我遇到的错误:ImageSVG 不是 FPDI 库的方法。

我知道这个方法是 TCPDF 库的一部分,我已经包含了它(文本的第 7 行)。有人愿意帮忙吗?

删除 FPDF 的 require 语句 require('fpdf.php');。这样 FDI 将扩展 TCPDF 而不是 FPDF。

您也可以删除常量。如果您使用 TCPDF,则不需要 FPDF 常量。此外 FPDI_FONTPATH 它从未使用过,也从未记录在案,在任何情况下都可以使用。