【问题标题】:SVG in mPDF (PHP library )mPDF 中的 SVG(PHP 库)
【发布时间】:2015-08-20 14:49:07
【问题描述】:

在 php 代码中,我使用 mPDF 库来生成 PDF。 我在将 svg 插入 PDF 时遇到问题 我通过 POST 捕获的 svg 文件:

   $svg = $_POST['structureSVG'];
   $svg_pdf = str_replace('"', '\'', $svg); //change " to '

证明里面有什么:

   var_dump($svg_pdf);
    //shows string which contains: 
<svg>...</svg>

我可以确定,SVG 被正确捕获。所以我把SVG:

$html = " <div> $svg_pdf </div> ";
$mpdf -> WriteHTML($html);
$mpdf -> Output('pdf/test_svg.pdf', 'I');

但不幸的是,SVG 图片没有以 PDF 格式呈现

感谢您的帮助

【问题讨论】:

  • 您是否阅读了与 SVG 支持和不支持的内容相关的 mPDF 手册? mpdf1.com/manual/index.php?tid=245 没有人能猜出您的特定 SVG,您应该阅读所有这些内容并检查您的 SVG,看看它是否受支持
  • 是的,我已经阅读了手册,并确保我已经让简单的 svg 只包含一个元素 并且我尝试以同样的方式插入到我的代码中,但结果是一样的
  • 我想在mPDF论坛交流,但是无法注册账号。有人在 mPDF 论坛上注册吗?

标签: php pdf svg fpdf


【解决方案1】:

您需要将 SVG 当作常规的 &lt;img&gt; 标签处理。从我的角度来看,最简单的方法是将文件保存到临时目录,然后使用 mPDF 加载:

&lt;img src="path/to/the/temp/file.svg"&gt;

很遗憾,您不能将数据 uri 用于 SVG 图像(至少在 5.7.4 版中)。

【讨论】:

  • 谢谢,但我已经停止使用 mPDF,因为有一个问题无法解决......当 SVG 包含几个带有参数 'diplay:none' 的图层时,mPDF 不尊重这样的参数
  • 单层 SVG 与 mpdf 库一起正常工作,但是当有多个层时,它将无法正常工作。这是使用其他库的最佳方式,例如 TCPDF、wkhtmltopdf 等。
  • 这为我节省了很多时间。谢谢!
猜你喜欢
  • 2018-06-10
  • 1970-01-01
  • 1970-01-01
  • 2012-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-20
  • 1970-01-01
相关资源
最近更新 更多