2009-02-19 29 views
3

我需要能够将各种文档转换和合并到一个PDF中。ASP.Net将文档转换和合并到单个PDF中

的文件可能是不同的类型,如Word,开放式办公,图像,文本,网页(按URL)和PDF通常会包括2-3个文件。

目前,已安装到服务器上的Microsoft Office,我们正在使用BCL技术easyPDF。这处理大多数文件,但我们还没有做Open Office的。

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

我问这个问题的原因是性能是一个关键问题。 PDF是为用户即时生成的,因此我们目前正在等待30-60秒的等待时间变得无法接受。

我们已经做了周围的一些文件缓存的时候都intially上传,所以当用户请求一个PDF是合并一些已经生成的PDF的这种情况发生的主要任务。

别人是否可靠的最常见的文件类型及以上所有的工作,他们使用的任何其他工具,迅速?当这样说的时候,我好像在问很多东西!

编辑: 感谢所有伟大的建议,我会考虑其中的一些,比较性能。

只是为了增加所有这些,钱并不是真正的对象。我们非常乐意支付不同的应用程序来执行每项任务,并且希望通过各种硬件选项尽可能分配负载。

回答

3

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

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

这意味着:

  • 目标应用程序(例如办公室)打开和关闭
  • 该文件具有通过打印服务

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

2

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

-1

虽然我没有PDF转换建议,我可以说,这个问题听起来像一个可能在多个节点的分布。您是否发现PDF生成是受CPU限制的,还是存在其他限制因素?在花费太多精力重新编写PDF库界面之前,您可能需要查看瓶颈是什么。

2

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

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

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

是否可以将这些文档提取为更易于访问的格式(html/xml /数据库),因此每次需要创建PDF时都不需要打开Office?