ABCPdf将Svg Stream转换为PDF

时间:2015-05-07 11:23:06

标签: pdf svg abcpdf

我想在C#中使用ABCPdf将Svg流转换为Pdf。我收到的流包含Svg的XML。 我正在使用ABCPdf提供的Doc.AddImageHtml方法。由于我只从流中获取XML,因此我将html和body标记作为前缀和后缀,以使其成为HTML。 我正在使用以下代码:

Doc abcPdfDoc = new Doc();                                
XmlDocument xDocument = new XmlDocument();
xDocument.Load(stream);
abcPdfDoc.AddImageHtml("<html><body>" + xDocument.InnerXml + "</html></body>");
abcPdfDoc.Save(@"MyPdf.pdf");
abcPdfDoc.Clear();   

问题是我的SVG中的表格没有保留。我的PDF中的输出是一个没有表格的运行文本。(Rect具体)

有关保留格式可以采取哪些措施或使用ABCPdf实现相同目标的更好方法的指示?

1 个答案:

答案 0 :(得分:2)

您不需要使用AddImageHtml。假设您正在使用基于SVG Tiny规范的相当标准的SVG,您可以直接使用Doc.Read SVG。这是快速,简单和高效的,并且适用于大多数SVG文档。

如果您的SVG更复杂,那么您可能希望使用Gecko引擎。为此,您可以将AddImageHtml与SVG一起使用,将Doc.HtmlOptions.Engine属性设置为EngineType.Gecko。 Gecko引擎涉及更大的开销,但提供了SVG规范的全功能覆盖。