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

我需要能够将各种文档转换并合并为单个Pdf。

文档可以是各种类型,例如Word,Open Office,图像,文本,网页(通过URL),PDF通常包含2-3个文档。

目前,我们正在使用安装在服务器上的BCL Technologies easyPDF和Microsoft Office。 这可以处理大多数文档,但我们还没有使用Open Office。

我们目前每天生产约100-1000这些PDF。

我问这个问题的原因是性能是一个关键问题。 PDF是为用户动态生成的,因此我们目前获得的等待时间为30-60秒变得不可接受。

当文档被初始上传时,我们已经对文档进行了一些缓存,因此当用户请求Pdf时发生的主要任务是合并一些已经生成的Pdf。

是否还有其他任何人使用过的工具可以为大多数常见文档类型提供可靠的工作,最重要的是,快速? 这样的话,似乎我问了很多!

编辑:感谢所有好的建议,我将研究其中的一些并比较性能。

只是为了补充这一切,钱并不是真正的对象。 我们非常乐意支付不同的应用程序来执行每项任务,以及查看各种硬件选项以尽可能多地分配负载。

合并多个PDF文档通常很简单(只要它们不需要在同一页面上合并) – 您可以将合并性能与iTextSharp(iText的.NET版本)进行比较,以确保它不是瓶颈 – 否则从其他格式转换为PDF可能是瓶颈。

在几乎所有情况下,用于将X转换为PDF的方法是执行针对软件PDF打印机的应用程序打印命令,以创建临时PDF文件。

这意味着:

  • 打开和关闭目标应用程序(例如Office)
  • 该文件必须通过印刷服务

在您的情况下,您是在转换用户提交的任意文档,还是文件来自存储的文件库? 如果它是一个库,您可以在将每个文件添加到库中时(而不是在用户发出请求时)制作PDF副本,然后仅合并PDF文件。

我们使用ABC Pdf。 我不知道它是否足够快以满足您的需求,但它似乎适合我们的使用。

我有一个非常类似的问题,我们的文档已经以PDF格式存在,并且需要允许用户将它们全部组合在一起。 我们购买了PDF4NET产品,我记得约500美元。 它非常易于使用,并提供了如何使用这些工具的绝佳示例。

O2解决方案 – PDF4NET

以下是它们为合并提供的代码示例。 顶行看起来只是输出文件,后两行允许将内容流回用户。

PDFFile.MergeFilesToDisk( "append.pdf", "unicode.pdf", "multicolumntextandimages.pdf" ); PDFDocument doc = PDFFile.MergeFilesToDoc( "append.pdf", "unicode.pdf", "multicolumntextandimages.pdf" ); doc.SaveToStream( stream ); 

你说你正在使用Microsoft Office打开这些文件,我想这是瓶颈而不是实际的PDF创建。

是否可以将这些文档提取为更易于访问的格式(html / xml / database),以便每次需要创建PDF时都不必打开办公室?

虽然我没有PDF转换建议,但我可以说这个问题听起来像是可以分布在多个节点上的问题。 您是否发现PDF生成受CPU约束或存在其他限制因素? 在花费太多精力重写PDF库界面之前,您可能希望了解瓶颈是什么。