我正在使用 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/