我需要能够将各种文档转换并合并为单个Pdf。
文档可以是各种类型,例如Word,Open Office,图像,文本,网页(通过URL),PDF通常包含2-3个文档。
目前,我们正在使用安装在服务器上的BCL Technologies easyPDF和Microsoft Office。这可以处理大多数文档,但我们还没有使用Open Office文档。
我们目前每天生产约100-1000张这些PDF文件。
我提出问题的原因是性能是一个关键问题。 PDF是为用户动态生成的,因此我们目前等待30-60秒的时间变得不可接受。
我们在文档被初始化时已经对文档进行了一些缓存,因此当用户请求Pdf时发生的主要任务是合并一些已经生成的Pdf。
是否还有其他任何人使用过的其他工具可以为大多数常见文档类型提供可靠的工作,最重要的是,很快?这样的话,好像我问了很多!
编辑: 感谢所有好的建议,我将研究其中的一些并比较性能。
只是为了补充这一切,钱并不是真正的对象。我们非常乐意为不同的应用程序支付费用来执行每项任务,以及查看各种硬件选项以尽可能多地分配负载。
答案 0 :(得分:3)
合并多个PDF文档通常很简单(只要它们不需要在同一页面上合并) - 您可以将合并性能与iTextSharp(iText的.NET版本)之类的东西进行比较,以确保它不是瓶颈 - 否则从其他格式转换为PDF可能是瓶颈。
在几乎所有情况下,用于将 X 转换为PDF的方法是执行针对软件PDF打印机的应用程序打印命令,以创建临时PDF文件。
这意味着:
在您的情况下,您是在转换用户提交的任意文档,还是来自存储的文件库?如果它是一个库,您可以在将每个文件添加到库中时(而不是在用户发出请求时)制作PDF副本,然后仅合并PDF文件。
答案 1 :(得分:2)
我们使用ABC Pdf。我不知道它是否足够快以满足您的需求,但它似乎适合我们使用。
答案 2 :(得分:2)
我遇到了一个非常类似的问题,我们的文档已经以PDF格式存在,并且需要允许用户将它们全部组合在一起。我们购买的PDF4NET产品约为500美元。它非常易于使用,它们提供了如何使用这些工具的绝佳示例。
以下是它们为合并提供的代码示例。顶行看起来只是输出文件,第二行允许将内容流回用户。
PDFFile.MergeFilesToDisk( "append.pdf", "unicode.pdf", "multicolumntextandimages.pdf" );
PDFDocument doc = PDFFile.MergeFilesToDoc( "append.pdf", "unicode.pdf", "multicolumntextandimages.pdf" );
doc.SaveToStream( stream );
答案 3 :(得分:2)
您说您正在使用Microsoft Office打开这些文件,我认为这是瓶颈而不是实际的PDF创建。
是否可以将这些文档提取为更易于访问的格式(html / xml / database),以便每次需要创建PDF时都不必打开办公室?
答案 4 :(得分:-1)
虽然我没有PDF转换建议,但我可以说这个问题听起来像是可以分布在多个节点上的问题。您是否发现PDF生成受CPU限制或是否存在其他限制因素?在花费太多精力重写PDF库界面之前,您可能希望了解瓶颈是什么。