Php SVG中的Foreignobject不会被转换并通过TCPDF显示在PDF中

Php SVG中的Foreignobject不会被转换并通过TCPDF显示在PDF中,php,pdf,d3.js,svg,tcpdf,Php,Pdf,D3.js,Svg,Tcpdf,我正在使用TCPDF php库将svg转换为pdf。我的svg有一个带有body、div和span的foreignObject,用于在文本中显示一些注释。 当我在浏览器中打开SVG时,它看起来很好,但当我使用TCPDF将其转换为PDF时,我的文本将显示在空白处,同时也会显示灰色背景。如果在SVG中使用,那么您将需要一个转换器,它不仅可以呈现SVG,还可以呈现HTML。也许有人在市场上销售支持HTML的SVG转换器,但我不知道有这样的转换器 SVG标准提供了元素,因此用户可以在SVG中嵌入非SVG

我正在使用TCPDF php库将svg转换为pdf。我的svg有一个带有body、div和span的foreignObject,用于在文本中显示一些注释。 当我在浏览器中打开SVG时,它看起来很好,但当我使用TCPDF将其转换为PDF时,我的文本将显示在空白处,同时也会显示灰色背景。

如果在SVG中使用
,那么您将需要一个转换器,它不仅可以呈现SVG,还可以呈现HTML。也许有人在市场上销售支持HTML的SVG转换器,但我不知道有这样的转换器

SVG标准提供了
元素,因此用户可以在SVG中嵌入非SVG内容。SVG标准不需要SVG呈现来支持可能放置在foreignObject中的任何特定类型的内容

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

除了避免使用foreignObject之外,没有明确和明显的解决办法


如果您不介意SVG内容在转换为PDF时保持为向量,那么可以使用phantomjs之类的工具将SVG转换为位图。然后将位图转换为PDF格式。不过,这不是一个很好的解决方案。

欢迎使用Stackoverflow。请阅读这些链接以改进您的问题:| |我在Brower中没有遇到任何问题,它与浏览器的工作正常,但当我在TCPDF中使用SVG时,foreignObject元素不会出现。是的,我需要SVG保持向量形式。我使用的是$pdf->ImageSVG($file='images/tux.svg',$x=30,$y=100,$w='',$h=100,$link='',$align='',$paign='',$border=0,$fitonpage=false);为了从TCPDFGood找到支持HTML的svg到PDF转换器,可以在PDF中添加svg。你可能不得不认真考虑改变你的SVG,这样他们就不会使用<代码> <代码>。@ PaulLeBeau,请看“绘制.IO”如何工作。他们肯定在svg中使用foreignObject来显示文本。然后使用服务器端转换器将svg转换为pdf。他们使用什么转换器???@krispo在我看来draw.io有自己的基于XML的内部文件格式。它有SVG和PDF的导出器。但它似乎并没有直接从SVG转换为PDF。