php - TCPDF 不会将 SVG 中的异物转换并显示在 PDF 中

标签 php pdf d3.js svg tcpdf

我正在使用 TCPDF php 库将 svg 转换为 pdf。我的 svg 有带有 body、div 和 span 的foreignObject,用于在文本中显示一些注释。 当我在浏览器中打开该 SVG 时,它看起来不错,但是当我使用 TCPDF 将其转换为 PDF 时,我得到了空白区域,其中我的文本应该与灰色背景一起出现。

最佳答案

如果您使用 <foreignObject>在你的 SVG 中,那么你需要一个转换器,不仅可以渲染 SVG,还可以渲染 HTML。也许有人推销一款支持 HTML 的 SVG 转换器,但我不知道。

SVG 标准提供 <foreignObject>元素,以便用户可以将非 SVG 内容嵌入到 SVG 中。 SVG 标准不要求 SVG 渲染器支持可能放置在foreignObject 中的任何特定类型的内容。

浏览器在foreignObject中支持HTML这一事实显然纯粹是因为它们是HTML查看器。

除了避免使用foreignObject之外,没有明确且明显的解决方法。

如果您不关心 SVG 内容在转换为 PDF 时仍保留为矢量,那么您可以使用 phantomjs 之类的工具将 SVG 转换为位图。然后将该位图转换为 PDF。但这不是一个很好的解决方案。

关于php - TCPDF 不会将 SVG 中的异物转换并显示在 PDF 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40782308/

相关文章:

php - 通过PHP套接字发送和接收多个JSON文字

javascript - 如何在网站上使用 JavaScript 在现有 PDF 之上添加文本?

php - 如何在 PHP 中创建要存储为 mysql TIMESTAMP 类型的时间?

php - 用于 PHP GD 图的平滑起伏不定的图像线

pdf - Azure 应用服务 : Converting docx to pdf

javascript - 0 用 d3 系列数据填充空值

image - 将 d3 地理投影应用于图像

d3.js - 以毫秒为单位的时间刻度

php - 查找 PostgreSQL 中一组之间的所有行

javascript - 您如何查看 PDF 中嵌入的 JavaScript?