【问题标题】:Converting docx to pdf using openxml and pdfcreator in c#在 c# 中使用 openxml 和 pdfcreator 将 docx 转换为 pdf
【发布时间】:2012-02-07 17:04:45
【问题描述】:

我需要在服务器中将 docx 转换为 pdf 文件。我已经看到 PDFCreator 会做,基于以下链接(http://sourceforge.net/projects/pdfcreator/)。

我需要一些建议如下:

  1. 我可以在服务器端使用 PDF Creator。
  2. 在不创建 word 对象的情况下,我可以使用 pdfcreator API 使用 openxml 将 docx 转换为 pdf。

请尽快给我答复。

【问题讨论】:

  • 您需要一些东西来将 docx 呈现为实际文档。如果你不能使用 Word,你可以试试 OpenOffice?自动化并不出色,但可以使其工作。或者您可以购买大量第三方组件来执行此操作。见this old question
  • 我只需要使用 ms word。有第三方工具,但要花钱。我们在应用程序中使用了 wordDocument.ExportAsFixedFormat(...),但需要 word 对象(Microsoft 不推荐)。看了PDFCreator,是不是好办法。

标签: c# pdf-generation openxml docx


【解决方案1】:

您可以使用docx4j.NET 将 docx 转换为 XSL FO,然后再转换为 PDF。或者,事实上,Apache FOP 支持的任何其他输出格式。

看到这个sample

docx4j.NET 是一个 IKVM 的 docx4j DLL,一个 ASL v2 许可的开源项目。

【讨论】:

  • 这很好,但很及时。转换大约需要 10 分钟。
  • 你的docx有多少页?你在 Visual Studio 中调试吗?太慢了..
【解决方案2】:

我认为您在这里尝试做两件不同的事情。 OpenXML 使用 DOCX 文件 - 在这种情况下不以任何方式使用 Word。 PDFCreator 似乎伪装成一台打印机,当 Word 向它“打印”时,它会生成一个 PDF 文件。

因为您说要在服务器上将 DOCX 转换为 PDF,所以我假设您不想使用 Word。因此,如果您想要所有免费软件,最好的办法是使用 OpenXML 读取文件,然后调用 iText 创建 PDF。您的代码基本上将从读取 OpenXML 内容转换为将其提供给 iText。

请记住,这有很多复杂性。它不仅仅是从 OpenXML 中读取一个段落,而是将其写入 iText。您必须将所有段落和运行属性以及任何应用的样式、列表等传递给 iText。仅how to indent the first line of a paragraph 的规则就相当复杂。

如果您对商业软件持开放态度,那么有许多产品可以轻松做到这一点。如果是这样,请将其添加到您的问题中,我会列出这些(包括我的公司)。

【讨论】:

  • 嗨 - the answer below 是试图回复你; user rosirosss 想听听您的商业产品列表。谢谢!
  • @Rup - 我最喜欢的是 www.windward.net(免责声明 - 我是那里的 CTO)。其他的有 DevExpress(有限但便宜)、Crystal Reports(昂贵且复杂)和 Sql Server Reporting Services(免费但是 Sql Server 的一部分,价格昂贵)。
猜你喜欢
  • 2020-06-11
  • 1970-01-01
  • 1970-01-01
  • 2016-11-20
  • 2019-02-18
  • 2023-04-08
  • 2015-10-14
  • 2017-08-17
  • 2018-10-02
相关资源
最近更新 更多