ASP.Net将文档转换和合并为单个PDF文件

3
我需要能够将各种文档转换并合并为单个PDF的能力。这些文档可能是不同类型的,例如Word、Open Office、图像、文本、Web页面(通过URL),而PDF通常由2-3个文档组成。目前,我们正在使用安装了Microsoft Office的BCL Technologies easyPDF处理大多数文档,但我们尚未处理过Open Office文档。我们每天生成大约100-1000个PDF。我提出问题的原因是性能是一个关键问题。PDF是即时生成的,因此我们目前等待30-60秒的时间变得不可接受。当用户请求PDF时,我们会对文档进行一些缓存,因此主要任务是合并多个已经生成的PDF。还有其他人使用过哪些工具可靠地处理大多数常见文档类型,并且最重要的是快速吗?这样说起来似乎我要求很多!编辑:感谢所有的建议,我会研究一些并比较性能。只需补充一点,金钱并不是问题。我们很乐意为每个任务支付不同的应用程序,并探索各种硬件选项以尽可能分配负载。
5个回答

3
合并多个PDF文档通常很简单(只要它们不需要合并在同一页上)- 您可以将合并性能与iTextSharp进行比较(iText的.NET版本)以确保它不是瓶颈 - 否则,从其他格式转换为PDF可能是瓶颈所在。
几乎所有情况下,将X转换为PDF的方法是执行应用程序打印命令,针对软件PDF打印机,以创建临时PDF文件。
这意味着:
- 目标应用程序(例如Office)被打开和关闭 - 文档必须通过打印服务传输
在您的情况下,您是将用户提交的任意文档转换,还是文档来自存储的文件库?如果是库,则可以在添加到库中时制作每个文件的PDF副本(而不是在用户发出请求时),然后仅合并PDF文件。

2
我曾经遇到了一个非常相似的问题,我们已经有了以PDF格式存在的文档,需要让用户查看它们的组合。我们购买了PDF4NET产品,大约是$500。它非常易于使用,并提供如何使用工具的绝妙示例。
以下是他们提供的合并代码示例。首行看起来只是输出文件,第二和第三行允许将内容流回给用户。 O2 Solutions - PDF4NET
        PDFFile.MergeFilesToDisk( "append.pdf", "unicode.pdf", "multicolumntextandimages.pdf" );
        PDFDocument doc =  PDFFile.MergeFilesToDoc( "append.pdf", "unicode.pdf", "multicolumntextandimages.pdf" );
        doc.SaveToStream( stream );

2
我们使用ABC Pdf。我不确定它是否足够快以满足您的需求,但似乎对我们的使用是有效的。

2
你说你使用Microsoft Office打开这些文件,我想瓶颈应该是这个,而不是实际的PDF创建。
是否有可能将这些文档转换为更易访问的格式(如html / xml /数据库),以便每次创建PDF时都不需要打开Office?

-1

虽然我没有PDF转换建议,但是我可以说这个问题听起来像是一个可以在多个节点上分布的问题。您是否发现PDF生成是CPU限制还是有其他限制因素?在过度努力地重写PDF库接口之前,您可能需要查看瓶颈在哪里。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接