2010-11-12 127 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

相关问题