2011-03-02 131 views
1

當有人在文檔鏈接檢查用戶是否被授權查看文檔或不是Intranet門戶時,我們需要將MS Office文檔實時轉換爲PDF。我們還需要根據文檔的上次修改日期來緩存文檔,如果其他用戶請求同一文檔並且文檔內容自上次轉換後未被修改,則不應再次轉換文檔。文檔轉換實時 - 實施問題

我對如何實現這一點有一些基本問題 - 並想檢查是否有人有以前的經驗或想法他們如何看到這實現?例如,如果我們選擇J2EE作爲技術,並選擇其中一個用於PDF轉換的開源Java庫;我有以下問題。

  1. 如果有一個100 MB的文檔 - 我們需要從文檔託管的系統下載整個文檔,然後開始轉換文檔。考慮到這需要實時查看,這種方法可能會對響應時間產生重大影響。有沒有選擇閱讀文檔的第一頁而不下載整個文檔,以便我們可以逐頁轉換文檔?
  2. 我們如何緩存文檔?我不認爲我們可以將文檔存儲在服務器或數據庫中。原因是這可能會導致任何人有權訪問數據庫或服務器 - 可以訪問文檔內容。有什麼想法嗎?
  3. 或者你建議任何開箱即用的產品來做到這一點,而不是自定義開發?

感謝

回答

1

我爲創建使用Java/.NET Web服務調用一個product that does exactly what you are trying to do的公司工作,所以讓我看看,如果我能回答你的問題不帶偏見。

  1. 整個文檔將需要下載,因爲它需要將PDF轉換(例如,用於頁碼目的)之前被解釋才能進行。我相信你只是舉了一個例子,但對於MS-Office文檔,100MB非常大,儘管我們時常會看到它。

  2. 您可以根據您的確切安全要求實施緩存。如果您不想將轉換後的文件存儲在(安全)數據庫或文件系統中,那麼您可能希望將它們存儲在防火牆後面的其他服務器上。根據您預期的文檔數量和大小,您可能需要將它們緩存在內存中。我確信有很多J2EE緩存庫可用,我知道.NET中有很多。只需將最常請求的文檔保存在緩存中即可。

  3. 根據您的預算,你可能會去out of the box product(提示提示:-)。我知道有可用於Java的免費庫,它們充分利用Open Office,但是在OO中打開MS-Office文件時會遇到相同的格式限制。嘗試進行自己的MS-Office集成/自動化時要小心。有可能使它可靠和可擴展(我們做到了),但這需要很長時間和很多工作。

我希望這有助於。