【问题标题】:What is causing the TCPDF Library error that cuts off my SVG image?是什么导致了截断我的 SVG 图像的 TCPDF 库错误?
【发布时间】:2012-07-19 01:36:29
【问题描述】:

我一直在尝试使用 TCPDF 库创建包含 SVG 图像的 PDF。我想让 SVG 以页面为中心,上面和下面都有一些文本。

我已经设法使这项工作达到一定程度,但是 SVG 图像的一部分被切断,它似乎与 X/Y 位置有关,但我不知道如何解决这个问题。

是什么导致了 TCPDF 库错误,导致我的 SVG 图像被截断?

代码:

<?php 

require_once('../../TCPDF/tcpdf.php');

// Remove the default header and footer
class PDF extends TCPDF { 
    public function Header() {} 
    public function Footer() {} 
} 

$pdf = new PDF();

$pdf->AddPage();

$pdf->SetFont('helvetica', 'B', 160);

$pdf->SetTextColor(0,0,0);

$pdf->Cell(0, 0, 'Higher', 1, 1, 'C', false, '', 1);

$pdf->Ln(4);

$pdf->ImageSVG($file='Image.svg', $x=0, $y=80, $w=100, $h=100, $link='', $align='N', $palign='C', $border=1, $fitonpage=false);

$pdf->Ln(4);

$pdf->Cell(0, 0, 'Lower', 1, 1, 'C', 0, '', 1);

$file = 'Result' . '.pdf'; // Set the name of the PDF file

$pdf->Output($file, 'F'); // Save PDF to file

$pdf->Output($file, 'I'); // Display the PDF

?>

【问题讨论】:

    标签: php image pdf svg tcpdf


    【解决方案1】:

    这似乎是我使用的当前版本的 TCPDF 库的一个错误。

    问题是当你使用对齐功能时:

    $align='N', $palign='C'
    

    等,如果其他人有类似的问题并需要解决方法,我通过使用 x/y 位置手动居中 SVG 来修复它。

    另一个需要注意的问题是,当我尝试使用一些大尺寸的 SVG 图像时,我注意到它会产生视觉故障,因此 SVG 处理似乎肯定有一些错误。对于这个问题,我发现的解决方法是降低 SVG 的大小,然后使用宽度/高度值来缩放它们,这似乎可以解决问题。

    【讨论】:

      【解决方案2】:

      在编辑器中打开您的 svg 图片

      • 在 svg 标签中“
      • 查找宽度和高度的属性
      • 根据你的喜好修改它

        <svg xmlns="http://www.w3.org/2000/svg" 
        width="150" height="100" viewBox="0 0 3 2">
        
        <rect width="1" height="2" x="0" fill="#008d46" />
        <rect width="1" height="2" x="1" fill="#ffffff" />
        <rect width="1" height="2" x="2" fill="#d2232c" />
        </svg>
        

      如果修改宽度和高度不起作用,则&lt;svg&gt; ... &lt;/svg&gt; 内可能有一个矩形标签或线条标签,它超出了已经定义的宽度和高度。

      https://developer.mozilla.org/en-US/docs/Web/SVG/Element/svg

      【讨论】:

        猜你喜欢
        • 2012-02-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-04
        • 2020-09-15
        相关资源
        最近更新 更多