使用 TCPDF 转换为 PDF 时,SVG 变量显示未定义的索引
SVG variable shows undefined index when converting to PDF using TCPDF
我有一个 SVG file.i 我正在尝试使用 TCPDF 下载为 PDF 文件。如果 SVG file.The 中没有 #
,则 SVG 正在转换为 PDF 问题是文件“#”。请建议我该怎么做。
canvas.svg:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1140" height="600" viewBox="0 0 1140 600" xml:space="preserve">
<desc>Created with Fabric.js 1.7.17</desc>
<defs>
</defs>
<rect x="0" y="0" width="1140" height="600" fill="#ffffff"></rect>
<g clip-path="url(#clipCircle)">
<image xlink:href="http://localhost/canvas/560.jpg" x="-235" y="-280" style="stroke: none; stroke-width: 0; stroke-dasharray: none; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 10; fill: rgb(0,0,0); fill-rule: nonzero; opacity: 1;" width="470" height="560" preserveAspectRatio="none" transform="translate(235 280)"></image>
</g>
<clipPath id="clipCircle"><rect x="50" y="120" width="670" height="320" rx="40" ry="40"></rect></clipPath></svg>
pdf.php:
这是我用来下载 PDF 文件的文件。
require_once('tcpdf_include.php');
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->SetPrintHeader(false);
$pdf->SetPrintFooter(false);
$pdf->SetMargins(10, 10, 10, true);
// set font
$pdf->SetFont('helvetica', '', 10);
// add a page
$pdf->AddPage();
$pdf->ImageSVG($file='images/canvas.svg', $x=30, $y=100, $w='', $h=100, $link='', $align='', $palign='', $border=0, $fitonpage=false);
//Close and output PDF document
$pdf->Output('canvasoutput.pdf', 'D');
错误:
注意:未定义索引:D:\xampp\htdocs\canvas\TCPDF\tcpdf.php 中的 clipCircle on line 23043
警告:第 23044 行的 D:\xampp\htdocs\canvas\TCPDF\tcpdf.php 中为 foreach() 提供的参数无效
TCPDF ERROR: 部分数据已输出,无法发送 PDF 文件
svg 文件在网页中有效,但当我转换为 PDF.I 时发现问题。实际上 clipPath
应该包含在 defs
中。这是首选 solution.it 也适用于 TCPDF。
canvas.svg:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1140" height="600" viewBox="0 0 1140 600" xml:space="preserve">
<desc>Created with Fabric.js 1.7.17</desc>
<defs>
//added Here
<clipPath id="clipCircle"><rect x="50" y="120" width="670" height="320" rx="40" ry="40"></rect></clipPath>
</defs>
<rect x="0" y="0" width="1140" height="600" fill="#ffffff"></rect>
<g clip-path="url(#clipCircle)">
<image xlink:href="http://localhost/canvas/560.jpg" x="-235" y="-280" style="stroke: none; stroke-width: 0; stroke-dasharray: none; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 10; fill: rgb(0,0,0); fill-rule: nonzero; opacity: 1;" width="470" height="560" preserveAspectRatio="none" transform="translate(235 280)"></image>
</g>
</svg>
我有一个 SVG file.i 我正在尝试使用 TCPDF 下载为 PDF 文件。如果 SVG file.The 中没有 #
,则 SVG 正在转换为 PDF 问题是文件“#”。请建议我该怎么做。
canvas.svg:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1140" height="600" viewBox="0 0 1140 600" xml:space="preserve">
<desc>Created with Fabric.js 1.7.17</desc>
<defs>
</defs>
<rect x="0" y="0" width="1140" height="600" fill="#ffffff"></rect>
<g clip-path="url(#clipCircle)">
<image xlink:href="http://localhost/canvas/560.jpg" x="-235" y="-280" style="stroke: none; stroke-width: 0; stroke-dasharray: none; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 10; fill: rgb(0,0,0); fill-rule: nonzero; opacity: 1;" width="470" height="560" preserveAspectRatio="none" transform="translate(235 280)"></image>
</g>
<clipPath id="clipCircle"><rect x="50" y="120" width="670" height="320" rx="40" ry="40"></rect></clipPath></svg>
pdf.php:
这是我用来下载 PDF 文件的文件。
require_once('tcpdf_include.php');
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->SetPrintHeader(false);
$pdf->SetPrintFooter(false);
$pdf->SetMargins(10, 10, 10, true);
// set font
$pdf->SetFont('helvetica', '', 10);
// add a page
$pdf->AddPage();
$pdf->ImageSVG($file='images/canvas.svg', $x=30, $y=100, $w='', $h=100, $link='', $align='', $palign='', $border=0, $fitonpage=false);
//Close and output PDF document
$pdf->Output('canvasoutput.pdf', 'D');
错误:
注意:未定义索引:D:\xampp\htdocs\canvas\TCPDF\tcpdf.php 中的 clipCircle on line 23043
警告:第 23044 行的 D:\xampp\htdocs\canvas\TCPDF\tcpdf.php 中为 foreach() 提供的参数无效 TCPDF ERROR: 部分数据已输出,无法发送 PDF 文件
svg 文件在网页中有效,但当我转换为 PDF.I 时发现问题。实际上 clipPath
应该包含在 defs
中。这是首选 solution.it 也适用于 TCPDF。
canvas.svg:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1140" height="600" viewBox="0 0 1140 600" xml:space="preserve">
<desc>Created with Fabric.js 1.7.17</desc>
<defs>
//added Here
<clipPath id="clipCircle"><rect x="50" y="120" width="670" height="320" rx="40" ry="40"></rect></clipPath>
</defs>
<rect x="0" y="0" width="1140" height="600" fill="#ffffff"></rect>
<g clip-path="url(#clipCircle)">
<image xlink:href="http://localhost/canvas/560.jpg" x="-235" y="-280" style="stroke: none; stroke-width: 0; stroke-dasharray: none; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 10; fill: rgb(0,0,0); fill-rule: nonzero; opacity: 1;" width="470" height="560" preserveAspectRatio="none" transform="translate(235 280)"></image>
</g>
</svg>