2009-02-19 32 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?