创建PDF最好的C# API是什么?

189

你能推荐一些适用于C#的PDF API吗?免费的当然最好,但我也不介意付费。


4
请看在C#中运行时创建PDF文件 - Matthew Flaschen
2
我仍然建议使用iText#,因为即使付费也无法获得iText#提供的嵌套表格和许多其他功能。 - Akash Kava
为了以后的参考,您可能也想查看GemBox.Document。它提供了一个简单易用的API,可以查看文档内容模型 - Mario Z
3个回答

137

我使用了PdfSharp。它是免费、开源的,使用起来相当方便,但我不能说它是最好的还是不是,因为我还没有真正使用过其他任何东西。


+1. 这个有 XML 文档,所以我觉得比 iTextSharp 容易使用。不过,在 PdfSharp 中我找不到类似于 iTextSharp 的 PdfTextExtractor 的等价物。 - Sam
28
PdfSharp 是一个不错的东西,它采用 MIT 许可证授权。因此您可以将其用于商业目的。 - Chris623
6
Pdfsharp不支持从右到左的语言。 - EKanadily
它是跨平台的吗?有人在Linux上有经验吗? - user557657
2
我想在商业环境下使用此库,而不进行修改,但我担心SharpZipLib目录中的GPLv2许可证可能会使该项目的MIT许可证无效。例如:https://github.com/empira/PDFsharp/blob/master/src/PdfSharp/SharpZipLib/SharpZipBaseException.cs - Alexander Egorov
显示剩余5条评论

52

更新:

我不确定iText#库的许可何时或是否已更改,但它是在AGPL下许可的,这意味着如果与闭源产品一起使用,必须进行许可。目前,该问题不需要免费或开源库。在项目中使用任何库时,应始终调查许可类型。


我曾在 .NET C# 3.5 中成功使用过 iText#,它是一个用于生成 PDF 的开源 Java 库的移植版本,且免费。

NuGet 包提供了 iTextSharp 版本 5,并且官方开发者文档以及 C# 示例代码可以在 itextpdf.com 上找到。


71
请注意,iText#的许可证是AGPL。这意味着,如果您将其包含在另一个程序中,那个程序也必须使用AGPL许可证,即使您将其作为网站/SaaS提供。 - shezi
28
如果你想在商业用途中使用该库,仍然可以获取早期的LGPL版本。在NuGet上可获得 - https://www.nuget.org/packages/iTextSharp-LGPL。 - Paul Hiles
3
如果您想在实际应用中使用iTextSharp,它需要付费许可证。此外,在其GitHub页面上,它声称具有Java依赖性。 - Kraang Prime
4
@shezi 哎呀,我在Stack Overflow上关于iText提了一个问题,你可以看到,他们直接回答了我关于LGPL许可证以及它如何会对商业项目造成麻烦的问题。所以,也不能使用iText。 - Malavos
不再免费适用于闭源项目。 - DanKodi
显示剩余3条评论

8

我工作中使用了Winnovative的PDF生成器(主要用于将HTML转换为PDF,但也可以通过其他方式生成)。


2
这不是MIT许可的软件包。在部署时请注意此事。 - Gecko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接