TCPDF SVG不显示
问题描述:
我想生成一个文件(这部分工作正常),必须在右上角有一个标志(这是行不通的)。TCPDF SVG不显示
我的代码在这里有什么问题?我仔细检查了文件存在并且可读。试图移动东西,谷歌搜索使用示例,但仍然坚持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');
答
使用Imagick直接从SVG文件中创建一个PNG,看看是否能打开OK:
$im = new Imagick('path/to/my/file.svg');
$im->setImageFormat('PNG24');
$im->writeImage('path/to/my/file.png');
如果该文件显示OK,我不知道是什么问题。但是,如果该文件不显示OK,则问题可能在底层SVG文件中。在传入的SVG文件中检查属性等时,Imagick非常严格,所以即使是非常小的属性(例如,不应允许具有空值的空值)的属性也可能导致其失败。