在c#中使用openxml和pdfcreator将docx转换为pdf

时间:2012-01-11 10:19:05

标签: c# pdf-generation openxml docx

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

我需要对此提出一些建议,如下所示:

  1. 我可以在服务器端使用PDF Creator。
  2. 无需创建word对象,我可以使用pdfcreator API将docx转换为带有openxml的pdf。
  3. 请尽快给我回复。

2 个答案:

答案 0 :(得分:3)

您可以使用docx4j.NET将docx转换为XSL FO,并从那里转换为PDF。或者,实际上,Apache FOP支持的任何其他输出格式。

请参阅此sample

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

答案 1 :(得分:1)

我想你在这里尝试做两件不同的事情。 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的规则非常复杂。

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