9

我想动态生成内容,然后呈现为 ​​PDF 文件。此处理将在远程托管服务器上进行,因此无法使用虚拟打印机等。有没有人推荐一个可行的.NET库(pref C#)?

我知道我可以生成一堆 PS 代码并自己打包,但在这个阶段我更喜欢一些不那么棘手的东西。

谢谢!

4

11 回答 11

7

看看http://itextsharp.sourceforge.net/。它的开源。
教程:http: //itextdocs.lowagie.com/tutorial/

于 2009-01-16T15:51:48.677 回答
5

我使用SharpPDF取得了很好的成功。

于 2009-01-16T15:51:30.453 回答
4

我使用 Siberix 取得了成功

http://www.siberix.com/

企业许可证:350 美元(单个许可证涵盖无限数量的公司开发人员席位、无限数量的公司 Web 服务器和无限数量的分发,作为您应用程序的一部分。)

于 2009-01-16T20:53:34.980 回答
4

免费的PDF Generator .NET(WkHtmlToPdf 包装器)可以使用一行代码从 HTML 模板生成漂亮的 PDF:

var pdfBytes = (new NReco.PdfGenerator.HtmlToPdfConverter()).GeneratePdf(htmlContent);

(您只需要一个 DLL,无需外部依赖)

于 2013-09-09T06:05:23.100 回答
2

我在Winnovative 的 HTML to PDF方面有很好的经验。

开源HTML 文档(表单元素 + CSS 的问题)的坏处。

于 2009-01-16T20:57:29.620 回答
2

我们使用Amyuni PDF Converter并且已经成功使用了几年。我们的使用是通过 COM 接口,但它确实支持 .NET 接口。

于 2010-10-27T14:17:53.600 回答
1

一段时间以来,我一直在寻找高性能的 docx 到 pdf 工具。我们的系统具有电子政务方面,并且正在向用户社区生成大量报告。在这一点上,性能是最重要的。

我使用的早期工具没有进行同时转换,而是每个 exe 都需要等待另一个完成。我已经尝试过 Aspose.words,我对结果非常满意。

首先,在我们的项目中集成和部署非常容易和无缝。非常顺利。

其次,由于多个作业并行运行,转换速度要快得多。

第三,不仅速度快,而且即使没有格式错误。考虑到我们正在提供多语言系统,并且一些报告同时包含英语和阿拉伯语字段(注意从右到左对齐!),这非常重要。

最后,文件非常小,这也是非常重要的,因为通过我们的系统创建了数以万计的文档。

我们的第一个实现是 Microsoft Office 互操作库。我们使用以下代码将 docx 转换为 pdf 文档。该库将 docx 文档完美地转换为 pdf 文件,我们决定将其上传到报告生成服务器。但过了一会儿,我们注意到转换操作正在等待每个可执行文件。这会导致同时转换文档时出现很大延迟,这就是为什么我们开始搜索将 docx 文件转换为 pdf 文件的新工具的原因。 看图片

下面的代码展示了如何使用 Aspose.Words for .NET 工具将 docx 文档转换为 pdf 文件。 见图 2

于 2018-09-11T11:36:41.730 回答
0

RDLC 和报告查看器控件可以根据客户的判断或服务器命令生成 PDF,然后可以将其用作 PDF mime 类型。

于 2009-01-16T15:50:45.980 回答
0

我使用 O2solutions 的 PDF4NET 取得了很大的成功。它们支持 pdf 的各种场景和数字签名。

于 2009-01-16T15:56:02.303 回答
0

如果您的数据主要是 XML,您还可以查看 XSL-FO 解决方案 - 我们使用Alt-Soft 的 Xml2Pdf取得了巨大成功。“服务器”版本有点用词不当——它实际上只是您需要包含在 Winform、WPF 或 ASP.NET 应用程序中的单个 DLL——仅此而已!

像魅力一样工作(如果您熟悉 XSLT 和 XSL-FO,或者愿意学习它)。

马克

于 2009-01-16T16:02:28.310 回答
0

我们使用了一组来自PDFSharp的第三方 DLL,后者又使用来自 MigraDoc 的 DLL。我不知道我们朝着这个方向发展的所有原因(决定是由高级开发人员做出的),但我可以告诉你:

  • 它似乎正在积极开发中。
  • 它具有我们需要的大部分功能。
  • 源代码可用。尽管它使用了一些我以前从未见过的模式和约定,但一旦我了解它们,进行更改就相当容易了。我添加了对直接使用 System.Drawing.Image 而不是保存文件的支持。
  • 内部或外部都没有很好地记录它。
于 2009-01-16T16:23:23.760 回答