2010-11-12 35 views
2

我目前使用Adobe的Acrobat Interop庫(v1.1)以單線程方式批量編輯跨多個卷的多個PDF文檔。這是我程序中的一個主要瓶頸,並且隨着項目的成熟,我已經試圖將其中的一部分進行並行化。以編程方式創建Acrobat的多個實例

但是,似乎在繼續之前,我需要創建多個Acrobat進程,以便不會在應用程序的單個實例上鎖定多個線程。我知道人們可以通過在shell使用/ n開關調整Adobe的單進程的行爲,但由於它的.Net中實例化的方式:

Type type = Type.GetFromProgID("AcroExch.PDDoc"); 
CAcroPDDoc app = (CAcroPDDoc)Activator.CreateInstance(type); 

我真的不能找到一種方法來迫使它進入多個實例。我已經嘗試過每個註冊表破解,但這些只會影響Acrobat從shell中啓動的方式。據我所知,COM構造函數也沒有參數。

我希望有人能指引我走向正確的方向。謝謝!

+0

這可能是一個進程外COM服務器,請檢查在創建應用程序對象時是否看到.exe啓動。不,你不能覆蓋它在客戶端應用程序中的行爲。 – 2010-11-12 13:23:20

回答

2

Acrobat公開爲單線程COM,這是限制您的應用程序產生多個線程的牆。我能想到的唯一工作就是在單獨的進程上處理文件。

所以,

一)把你的邏輯的控制檯應用程序中,並多次產卵它並行

b)利用原生PDF處理器,像ABC Pdf (not free!)iTextSharp (free)

+0

由於授權原因,我可能會轉向ABC PDF的方向。感謝您的答覆! – 2010-11-16 12:53:05

相關問題