从ASP.NET MVC应用将docx转换为pdf

时间:2020-10-21 07:26:05

标签: c# asp.net-mvc office-interop asp.net-4.5 word-interop

我正在尝试从ASP.NET MVC应用程序将docx转换为pdf文件。我一直在使用Microsoft interop saveas命令直到现在,但有时(并非总是)由于错误“命令失败”而失败。我已经看到它已被弃用,Microsoft不再支持它,Microsoft表示不建议再从ASP.NET应用程序中使用它,所以我正在尝试寻找替代方法。

我看到有一个不错的东西,那就是aspose.words,但是它不是免费的。我对免费的一个感兴趣。那么,如今有没有免费的替代方法与Microsoft docx文档兼容,并且能够毫无问题地转换为pdf?

1 个答案:

答案 0 :(得分:1)

我对免费的一个感兴趣

没有一个。 Office / Word的.docx文件格式非常长又长又复杂(请参阅下文),因此编写一个可以完全解析Word文档的程序是一项艰巨的任务,而这仅是一项重要的任务生成视觉格式模型表示形式,然后通过从其中生成PostScript / PDF命令将该视觉模型转换为PDF文件。

这是OOXML规范打印后的样子:

enter image description here

(来源:https://fussnotes.typepad.com/plexnex/2007/05/ooxml_more_than_1.html

然后考虑Word格式模型中存在的所有功能和大写字母:表格,标题,大写字母,标题((不要忘记使用OLE嵌入和外部内容!),浮动文本框,艺术字等上。

Word文档的XML表示的非可视处理实际上是微不足道的,并且可以使用任何XML库完成-尽管您应该使用OOXML-schema-aware库,以便您正确地处理Word文档(这样您就不会最终将标题插入页眉或填充页面的标题)。

其他所有事情都是问题的困难(而且昂贵)部分。这就是为什么即使在今天,在Word首次发布后将近40年,以及OOXML格式规范发布了15年之后,诸如OpenOffice( nee StarOffice)和Apple iWork之类的第三方软件仍然无法完全实现,正确导入或呈现Word文档。

相关问题