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

本文关键字:ps 文件 创建 IIS PDFCreator 通过 使用 | 更新日期: 2023-09-27 18:37:01

我正在将.docx,.doc文件转换为.ps文件。在本地计算机上工作正常并打印.ps文件,但在IIS 7.5上无法打印,我只是收到此错误

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

我尝试了cStart("/NoProcessingAtStartup",false),但没有运气,并进行了多次搜索,但没有解决。以前有人遇到过这样的事情吗?

二、匿名授权,应用程序池标识

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();

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

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

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

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

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

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