如何在C#中使用iText 7将SVG图形添加​​到pdf文档中?

时间:2019-01-11 14:16:57

标签: c# pdf svg itext7

我正在使用iText7 C#开发贴纸的生成器。 最终标签的外观如下所示: https://drive.google.com/open?id=16q_sMP5H0eiVhq85DDRGgE-CDlX3fOB5

我在将SVG图形添加​​到pdf文档时遇到问题。我在上面的链接中有图形: https://drive.google.com/open?id=1bw2E5hVhKjjwYqn6aGbe_tNqPmYmXu4b https://drive.google.com/open?id=1lEqhrh2zAlOGlA1WMKfGtuhue6TBtcbc

在Internet上找不到如何使用iText7读取SVG文件并将其添加到pdf文档的实际示例。

有人可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:2)

使用最新版本7.1.4,您可以将SVG添加到这样的文档中:

public static void Convert(Stream svg, Stream pdfOutputStream) {
        SvgConverter.CreatePdf(svg, pdfOutputStream);
}

此类中有很多其他可能性可以转换为PDF,但这是最容易使用的方法。

答案 1 :(得分:0)

我使用以下代码将SVG图形添加​​到pdf文档:

string enc_text = File.ReadAllText(SVG);                            

SvgConverter.DrawOnCanvas(enc_text,pdfCanvas);

,但仅适用于如下所示的简单SVG图形 https://www.w3schools.com/graphics/tryit.asp?filename=trysvg_ellipse3

不适用于在CorelDraw中创建和保存的SVG: https://drive.google.com/file/d/1bw2E5hVhKjjwYqn6aGbe_tNqPmYmXu4b/view 可以使用itext7 C#在pdf上绘制此图形吗?

答案 2 :(得分:-1)

这是代码:

public const String SVG = @"C:\Users\Desktop\logo.svg";

....

string enc_text = File.ReadAllText(SVG);                            
SvgConverter.DrawOnCanvas(enc_text, pdfCanvas);

我尝试了三遍,以下是结果:

尝试1 SVG https://drive.google.com/open?id=1ibg_KwvviRQ4b9suniZwBJRdBdgM02te PDF-结果为:确定: https://drive.google.com/open?id=1DGGLUowlEYpAydbWTTSJORVxP67LGrf5

尝试2 SVG: https://drive.google.com/open?id=1UHASgAxAaPONIo9fc6VZ9q4cjjK-uOzj PDF-结果是:一半成功 https://drive.google.com/open?id=1yzLF-fQQcOQvEXVyDN-UuK0YVeHOn5B_

尝试3 SVG https://drive.google.com/open?id=1ZNLDkc2x4WvHouKw-A4AgRrDuQ2pAoDE PDF-结果是:没有徽标 https://drive.google.com/open?id=1nJVNT5oAMoI8HuUURZQv1yhu7IbFoI6H

SVG图形在浏览器中可以很好地显示,但是iText无法正确绘制它们,尤其是那些复杂的图形