TCPDF SVG无法显示

时间:2016-04-22 10:37:14

标签: php tcpdf

我正在尝试生成一个文档(此部分正常工作),该文档必须在右上角有一个徽标(这不起作用)。

我的代码有什么问题?我仔细检查了文件是否存在且可读。试图移动东西,谷歌搜索使用示例,但仍然坚持使用TCPDF静默不显示图像。

$generator = new TCPDF('L', PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// set header and footer fonts
$generator->setPrintHeader(false);
$generator->setPrintFooter(false);
// set margins
$generator->SetMargins(10, 10, 10);


$generator->AddPage();
$generator->SetFont('helvetica', '', 8);

$generator->writeHTML($html, true, false, false, false, '');

$generator->ImageSVG(
    $file = ('path/to/my/file.svg'),
    $x = 250,
    $y = -10,
    $w = '',
    $h = 50,
    $link = '',
    $align = '',
    $palign = '',
    $border = 0,
    $fitonpage = false);

return $generator->Output('generated.pdf', 'S');

1 个答案:

答案 0 :(得分:0)

使用Imagick直接从SVG文件创建PNG,看看是否打开OK:

$im = new Imagick('path/to/my/file.svg');
$im->setImageFormat( 'PNG24' );
$im->writeImage('path/to/my/file.png');

如果该文件显示OK,我不确定是什么问题。但是,如果该文件显示不正常,则问题可能出在基础SVG文件中。在检查传入的SVG文件中的属性等时,Imagick是非常严格的,所以即使是非常小的东西(例如,不应该允许具有空值的空值的属性)也可能导致它失败。