【问题标题】:SVG to PDF in phpSVG 转 PDF 在 php
【发布时间】:2018-08-16 13:23:08
【问题描述】:

我使用SVG 数据创建了一个PDF

try{
    $mpdf = new mPDF;
    $final_html = '<div>';
    //$raw_images contains the SVG Path
    foreach($raw_images as $rimage){
        $final_html .= "<img src='".$rimage."' width='100%'><br/><br/>";
    }
    $file_name = uniqid($prefix).".pdf";

    $final_html .= '</div>';
    $mpdf->WriteHTML($final_html);
    $mpdf->Output($folder_name.$file_name, 'F');

} catch (ImagickException $ex) {
    echo $ex->getMessage();
}

请查看Codepen For SVG

现在生成的 PDF 看起来像这样 View PDF

如果您检查 SVG 数据,它包含一张带有 SVG.like &lt;image id="qr_code" xlink:href="data:image/svg+xml... 的图像。所以 SVG 数据中有一个 svg 图像(意味着 svg 中的一种 svg)。

SVG 图像可以正常工作,这意味着您可以查看输出(即 QR 码可见)。但是生成的 PDF 不显示 QR 码(可能是因为 QR 码图像是 SVG)。

那么如何解决这个问题,让二维码在 PDF 中可见?

【问题讨论】:

  • ...或者因为您使用嵌入在 PDF 中的 SVG 中的 BASE64 编码 SVG!?为什么会这样?摆脱多余的复杂性并再次测试。 (顺便说一句,SVG 可以转换为 EPS,这是嵌入 PDF 中的矢量图形的默认格式。)
  • 实际上,我正在制作名片,它需要有二维码。因此,如果我为 QR 码渲染 PNG 文件,则卡片的那部分不再是矢量。所以这就是为什么我在卡片 svg 中添加了 QR 码 svg。
  • 你不应该渲染SVG,你应该尽量避免嵌套,首先是base64编码数据形式的嵌套。我不知道 PDF 是怎么做的。这只是一个猜测。

标签: php pdf svg


【解决方案1】:

见:https://mpdf.github.io/what-else-can-i-do/images.html

嵌入的图像数据既可以用在元素中,也可以用在 CSS 中 背景。支持 gif、png 和 jpeg。

因此,不支持 SVG。始终阅读文档。同一页面上的提示:

mPDF 部分支持 SVG 图像,包括嵌入的 HTML

【讨论】:

  • 有什么方法可以使用 svg 数据创建 PDF,因此生成的 pdf 可以包含各种 svg 图像/对象等?
  • 如果您不限于使用 mPDF,那么 TCPDF 库可能是一个解决方案。喜欢这里:stackoverflow.com/questions/31876116/…
猜你喜欢
  • 2014-03-22
  • 2015-09-12
  • 1970-01-01
  • 2013-06-29
  • 2011-05-06
  • 2021-10-19
  • 1970-01-01
  • 2021-03-14
相关资源
最近更新 更多