有沒有辦法使用JavaScript(或C#)打開PDF文檔,並使用Acrobat自動打開它,讓用戶編輯文檔,並在用戶關閉文檔時,保存回服務器。用javascript打開PDF
從我的研究,我發現人們推薦iTextsharp,但我不認爲這會做我想做的事情。
基本上我試圖模仿SharePoint的簽出/簽入功能。
有沒有辦法使用JavaScript(或C#)打開PDF文檔,並使用Acrobat自動打開它,讓用戶編輯文檔,並在用戶關閉文檔時,保存回服務器。用javascript打開PDF
從我的研究,我發現人們推薦iTextsharp,但我不認爲這會做我想做的事情。
基本上我試圖模仿SharePoint的簽出/簽入功能。
忽略瀏覽器,所以假設你正在使用C#應用程序,這很有可能,並不像看起來那麼複雜。從服務器
下載文件,並將其與a .PDF extension存儲在一個臨時位置:細節將取決於您的具體設置,但我建議一拉。您的下載可能是over HTTP或via a UNC path or mapped drive。確保您保存的位置是您可以讀取/寫入和刪除文件的位置 - standard temp folder就足夠了。
使用Process.Start啓動Acrobat。如果Acrobat(或其他合適的編輯器)將在用戶的系統上註冊爲用戶雙擊PDF時打開的默認程序,那麼您可以直接進行處理。無需指定特定的動詞(命令)即可啓動文檔本身。否則你可以look up and specify the correct verb或launch Acrobat itself and specify the filename。
您可以等待用戶關閉Acrobat,即for the Acrobat process to finish或watch the file for changes,然後進行響應。請注意,如果注意Acrobat可能會在文件或Acrobat關閉該文件之前保留排他鎖的更改,則可能需要等待Acrobat完成或檢測到更改後,定期檢查(輪詢),直到您可以訪問該文件。
Upload the file回到服務器通過whatever means看來最合適。
據我所知沒有JS解決方案來編輯PDF(26.06.13),但有一種方法可以預覽它們,例如純JS解決方案PDF.JS。
您需要使用純提交的數據在服務器端生成PDF文件。
我不想生成PDF文件。我只是在Acrobat中打開的PDF文件,並將其保存回服務器,如SharePoint。 – Arm0geddon
在網絡中,它不可能作爲「保存」 - 是:打開>編輯>保存(生成)>上傳。 這不是PDF閱讀器的功能。 正如我所提到的,您可以將原始數據從各種表單發送到服務器,並在那裏生成PDF - 這是一個可以選擇的選項。 沒有辦法「保存」PDF,只能「生成」它。 – moka
要將文檔保存回SharePoint,應該在客戶端應用程序中提供支持。如果我正確理解Acrobat X支持此http://pdfdevjunkie.host.adobe.com/pdf/AcrobatXandMicrosoftSharePoint.pdf。這不是你要找的嗎?
很多可能取決於你想要完成什麼以及對你的環境/用戶有多少控制。看看Acrobat X和SharePoint的功能,看起來支持SharePoint是內置於Acrobat X.
這可以通過創建一個Acrobat插件來輕鬆(完成:-))完成。插件能夠監視Adobe Acrobat內的衆多事件並對其做出反應。他們可以做複雜的事情,比如添加一個文件系統(它允許你打開和保存實際存儲在數據庫中的文件),但是肯定有更簡單的策略可以想象。
想象一下,生活在Adobe Acrobat中的插件監視用戶打開的每個文件。在看到從服務器打開的文件時,它會將該文件標記爲您的文件並將其與服務器進行檢查(但您要實施該文件)。當用戶保存通知時也會收到的文件(在實際保存之前和之後),並且可以採取適當的措施。
所以一般的答案是肯定的,在某些情況下這是可行的,如果你願意編寫一個插件,並且你對你的環境有足夠的控制,那麼你可以確保所有的用戶都擁有這個插件安裝在Adobe Acrobat中。
不知道SharePoint是如何實際執行的...... – Arm0geddon
您可以使用提交按鈕創建PDF表單。一個提交按鈕有幾個選項,您可以發送整個填充的PDF,或者只發送(名稱,值)對作爲http post.You然後可以將此文件嵌入到網頁(使用acrobat reader), – yms
如果你想要做的修改比填寫表單更進一步,那麼我認爲你可能需要放棄。 – yms