ABCPdf 将 Svg 流转换为 PDF
ABCPdf Convert Svg Stream to PDF
我想在 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 中的输出是 运行 没有表格的文本。(具体为矩形)
关于如何保留格式或使用 ABCPdf 实现相同格式的更好方法的任何指示?
您不需要使用 AddImageHtml。假设您正在使用基于 SVG Tiny 规范的相当标准的 SVG,您可以直接 Doc.Read SVG。这是快速、简单和高效的,并且适用于大多数 SVG 文档。
如果您的 SVG 更复杂,那么您可能希望使用 Gecko 引擎。为此,您可以将 AddImageHtml 与 SVG 一起使用,将 Doc.HtmlOptions.Engine 属性 设置为 EngineType.Gecko。 Gecko 引擎涉及更大的开销,但提供了 SVG 规范的完整功能覆盖。
我想在 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 中的输出是 运行 没有表格的文本。(具体为矩形)
关于如何保留格式或使用 ABCPdf 实现相同格式的更好方法的任何指示?
您不需要使用 AddImageHtml。假设您正在使用基于 SVG Tiny 规范的相当标准的 SVG,您可以直接 Doc.Read SVG。这是快速、简单和高效的,并且适用于大多数 SVG 文档。
如果您的 SVG 更复杂,那么您可能希望使用 Gecko 引擎。为此,您可以将 AddImageHtml 与 SVG 一起使用,将 Doc.HtmlOptions.Engine 属性 设置为 EngineType.Gecko。 Gecko 引擎涉及更大的开销,但提供了 SVG 规范的完整功能覆盖。