ASP.NET网站,服务器端DOCX到PDF转换

时间:2009-12-13 18:46:56

标签: asp.net pdf-generation

我一直有这个问题的heckuva时间,并且在搜索引擎中似乎有很多噪音到达它的底部,所以请原谅我,如果我错过了那里的银弹

基本需求是我必须生成具有静态和动态元素的PDF文档。我开始通过使用包含所有静态内容的PDF模板来完成此操作,然后我想将各种动态元素注入其中。问题是PDF并不意味着以这种方式进行操作,并且根据我放在那里的动态文本的大小,可能会溢出其他页面上的文本。我正在使用iTextSharp,但无法解决这个问题。

可能的后备是生成DOCX,我之前已经完成,然后将其转换为后端的PDF。我发现这样做的唯一库是付费应用(例如Aspose)。有examples out there转换为PDF而没有这些库,但它们似乎需要客户端应用程序。我是通过IIS做的。

更长的故事......是否有免费的库可以将DOCX文件转换为PDF服务器端,而无需启动客户端应用程序来执行此操作?

4 个答案:

答案 0 :(得分:2)

这里有几个选择:

  • 构建一个COM互操作类,它将在.docx上执行读取和“另存为”功能。您提供的MSDN链接不需要在客户端运行,而是在GAC或ASP.NET的bin目录中具有Office程序集。

  • 购买第三方组件为您完成工作。 Here's just one example with no guarantees

答案 1 :(得分:2)

我不熟悉任何好的免费版本,但我们使用Aspose.Words来实现类似于你描述的内容。我们使用静态文本和邮件合并字段保留Word模板。模板可以是常规Word文档,它们不必是.dot模板。邮件合并字段可以是单个字段,也可以是表中的可重复数据,因此您可以轻松生成非常复杂的文档而无需进行动态文档编辑。 (这总是一种选择)

使用Aspose是非常无摩擦的我建议使用Aspose,除非成本(这是重要的)是一个显示阻止。支持也很好,这总是一个额外的好处。

总有一些警告......

  • 我希望能够更好地控制生成的PDF的PDF兼容性。我们在老客户阅读生成的PDF时遇到了一些问题。
  • 邮件合并并不好玩。为了做到正确,复杂的邮件合并表达非常耗时。

答案 2 :(得分:-1)

答案 3 :(得分:-3)

我刚刚发现使用LibreOffice从命令行转换任何文件的非常简单的解决方案:

soffice.exe --headless --convert-to pdf file.xls

(google for rest)