使用PDFCreator通过IIS创建.ps文件

时间:2012-06-12 21:17:36

标签: c# pdf-generation iis-7.5

我正在将.docx,.doc文件转换为.ps文件。在本地计算机上正常工作并打印.ps文件,但在IIS 7.5上它不打印,我只是得到这个错误

“ActiveX-Server尚未启动!请使用函数”cStart()“启动ActiveX服务器!”

我尝试了cStart(“/ NoProcessingAtStartup”,false)没有运气,并且进行了多次搜索,导致无法解决。有没有人遇到过这样的事情?

IIS: 匿名授权, 应用程序池标识

PDFCreator.clsPDFCreator creator = new PDFCreator.clsPDFCreator();
PDFCreator.clsPDFCreatorOptions options = new PDFCreator.clsPDFCreatorOptions();
options = creator.cOptions;
PDFCreator.clsPDFCreatorError perr = new PDFCreator.clsPDFCreatorError();

if (!creator.cStart("/NoProcessingAtStartup", false))
{
     Console.Write("Can't Initiase PDF Converter, letter Generation Error");
}

options.UseAutosave = 1;
options.UseAutosaveDirectory = 1;
options.AutosaveDirectory = path;
options.AutosaveFilename = name;
options.AutosaveFormat = 6; //0=PDF, 1=PNG, 2=JPG, 3=BMP, 4=PCX, 5=TIFF, 6=PS, 7= EPS, 8=ASCII
creator.cOptions = options;
creator.cSaveOptions();
creator.cClearCache();
creator.cPrinterStop = false;
creator.cDefaultPrinter = "PDFCreator";
creator.cPrintFile(pathFull);

err = creator.cError.Description.ToString();

1 个答案:

答案 0 :(得分:0)

可能是因为应用程序池用户没有运行PDFCreator的权限,或者因为它在第一次运行之前和之后从未运行过PDFCreator,它试图以交互方式进行一些安装或设置,而应用程序池用户没有交互式上下文。虽然我会倾向于后者,因为如果是前者,我会期待一个不同的错误。

如果可以通过计算机管理/组件服务中的DCOM配置部分访问PDFCreator,那么您可以尝试将其设置为始终以特定用户身份(可能是您自己的身份)运行。 您还需要为其提供应用程序池用户权限启动和激活和访问权限。

或者,您可以在应用程序配置或代码中尝试模拟,并模拟您通常用于PDFCreator的帐户。

更新:虽然Word是实际问题而且PDFCreator正在尝试激活它,但上述建议仍然适用。 如果另一个进程正在尝试激活Word,则运行该进程的用户需要具有DCOM权限,如果激活进程用户没有权限或之前从未使用过,则可能需要以特定用户身份运行Word 。

作为一个具体示例,假设您正在网络服务帐户下运行该过程并尝试激活Word,当新用户第一次尝试运行Word时,Word将为首次配置启动一些安装窗口,但由于用户没有交互式登录这些窗口无法看到,无法响应,因此安装挂起。在这种情况下,最好将Word设置为始终在DCOM配置中的特定标识下启动。