【问题标题】:Embed SVG into PDF programmatically in .NET C#在 .NET C# 中以编程方式将 SVG 嵌入 PDF
【发布时间】:2011-09-26 18:50:43
【问题描述】:

有人知道如何使用 C# 创建 pdf 并在此 PDF 中添加 SVG 文档吗?

itextsharp 做不到。

感谢这个库 (http://svg.codeplex.com/),我将 SVG 转换为图像,但我需要保留矢量图形,因为图像是像素化的。

有人知道图书馆可以做吗?

谢谢,

【问题讨论】:

  • 是否可以使用 itextsharp。 MyImageStream = new MemoryStream(); myChart.SaveImage(MyImageStream); 我的图表将是 svg 图表对象
  • 我改变了这样做的方式。我在 emf 中转换 svg 并生成一个 docx。但是,当您放大图像时,使用此解决方案不会像素化?如果不是像素化,建议将其作为解决方案。但是我无法再测试了,因为我更改了所有代码。

标签: c# .net pdf svg


【解决方案1】:

webSupergoo ABCpdf 也是一个不错的商业选择,价格略低一些(ABCpdf Std 售价 329 美元,ABCpdf Pro 售价 479 美元,如果您想要渲染或 x64 支持)。版本 7 在处理 SVG 文件时做得很糟糕(它只能加载一个小子集,通常会出现问题),但我知道(还没有亲身测试过)版本 8(现在是 9)大大改进了它的 SVG 支持切换到Gecko engine

【讨论】:

  • 不幸的是它对 Azure 的支持很糟糕......他们在他们的网站上声明必须设置一个虚拟机。我正在尝试将使用 ABCpdf 的解决方案迁移到 Azure Web App,而这个库目前是唯一的障碍......
【解决方案2】:

PDFKit.NET3 可以将 SVG 文档插入 PDF,同时保留矢量。

【讨论】:

    【解决方案3】:

    PrinceXML 在处理 SVG 方面做得非常好,但是,它并不是完全免费的,这意味着免费版本会在输出的 PDF 上放置一个小徽标。你可以在这里找到更多信息:http://www.princexml.com/doc/7.0/svg/

    PDFJet 将允许您创建线、圆、多边形和其他原始绘图工具。您可以创建一个类来解析您的 SVG,然后绘制适当的圆、弧、线等,并使用 PDFJet 制作 PDF。 PDFJet 可以在这里下载:http://pdfjet.com/os/edition.html

    除此之外,我认为您想要做的事情没有很多其他选择。

    【讨论】:

    • 第二种解决方案非常复杂。第一个很好,但我不能接受徽标。
    • @Dragouf - 实际上,这里有一个 SVG 库:An SVG Framework in C# and an SVG-GDI+ bridge 你可以使用这个库来解析 SVG,然后使用 PDFJet 甚至 iTextSharp 来绘制多边形、直线和圆弧图元。
    • 这似乎是一个很长的编码,我没有足够的时间。但如果我理解的话,似乎 pdf 可以嵌入 svg xobject。就我而言,我曾经使用inkscape命令行转换svg,然后将pdf与itextsharp合并。但我无法在页面上正确定位生成的对象...:s
    猜你喜欢
    • 1970-01-01
    • 2018-09-21
    • 2019-02-12
    • 2010-11-06
    • 1970-01-01
    • 2013-02-23
    • 1970-01-01
    • 2018-07-09
    • 1970-01-01
    相关资源
    最近更新 更多