使用 PDFTron(Convert.ToPdf) 转换 Word 文档会产生错误"Failed to obtain dispatch handle to opened document"



我有办公标准2016,在Windows Server 2016(64位(和PdfTron(32位(上安装了有效的许可证,我正在尝试通过PdfTron将Word文档转换为pdf,它是带有以下代码的Convert.ToPdf((方法的虚拟打印机

try
{
string conversionPath = string.Empty;
using (pdftron.PDF.PDFDoc pdfdoc = new pdftron.PDF.PDFDoc())
{
if (pdftron.PDF.Convert.RequiresPrinter(sourceFilePath))
{
if (pdftron.PDF.Convert.Printer.IsInstalled("PDFTron PDFNet"))
{
pdftron.PDF.Convert.Printer.SetPrinterName("PDFTron PDFNet");
}
else
{
pdftron.PDF.Convert.Printer.Install();
pdftron.PDF.Convert.Printer.SetPrinterName("PDFTron PDFNet");
}
}
conversionPath = System.IO.Path.ChangeExtension(sourceFilePath, ".pdf");
pdftron.PDF.Convert.ToPdf(pdfdoc, sourceFilePath);
pdfdoc.Save(conversionPath, pdftron.SDF.SDFDoc.SaveOptions.e_linearized);
System.IO.File.Delete(sourceFilePath);
}
return conversionPath;
}
catch (pdftron.Common.PDFNetException ex)
{
return string.Empty;
}
}

当我尝试这样做时,它会给我以下错误。

Exception: 
Message: An error occurred while converting the file.
Detailed error:
Exception: 
Message: Failed to obtain dispatch handle to opened document.
File: "Word.cpp":646
Log:
Start check system account.
Session ID is: 0.
Done checking system account.
Start checking registry.
Registry check done.
Creating a Word application instance.
Word application instance created.
Application.AutomationSecurity ID obtained.
Application.AutomationSecurity value set to 3.
Application.DisplayAlerts ID obtained.
Application.Version ID obtained.
Application version: 16.
Application.Build ID obtained.
Application build: 16.0.4266.
Application.Documents ID obtained.
Opening document "XXXXXX".
Documents.Open ID obtained.
Conditional expression: FALSE
Version    : 6.8.7.67376
Filename   : Convert.cpp
Function   : trn::PDF::Convert::ToPDFViaOffice
Linenumber : 1788
Failed to obtain dispatch handle to opened document.
File: "Word.cpp":646
Log:
Start check system account.
Session ID is: 0.
Done checking system account.
Start checking registry.
Registry check done.
Creating a Word application instance.
Word application instance created.
Application.AutomationSecurity ID obtained.
Application.AutomationSecurity value set to 3.
Application.DisplayAlerts ID obtained.
Application.Version ID obtained.
Application version: 16.
Application.Build ID obtained.
Application build: 16.0.4266.
Application.Documents ID obtained.
Opening document "XXXXXXX".
Documents.Open ID obtained.
Conditional expression: false
Version    : 6.8.7.67376
Filename   : Convert.cpp
Function   : trn::PDF::Convert::ToPdf
Linenumber : 1734

我不太确定这意味着什么,因为PDFTron和office都有有效的许可证密钥,任何帮助将不胜感激

首先,我建议尽可能放宽帐户凭据,使其尽可能接近标准用户。转换正常工作后,您就可以开始限制了。

以下是您应该确保工作的主要清单。

  1. MS Word已获得许可/激活,特别是对于正在使用的帐户。 我们建议您创建 Windows 服务并在单独的进程中运行转换。然后,以管理员并有权运行服务的用户身份运行该服务。此外,运行该服务的用户必须接受MS Office许可,以确保Office是完全许可的产品。

  2. 确保打印后台打印服务正在运行。对于许多 Windows 版本,可以通过在命令行中运行以下命令来启用打印后台处理程序:net start spooler

  3. 确保运行转换的帐号有权访问桌面文件夹。可以在以下位置找到本地系统或本地服务的桌面文件夹:C:WindowsSystem32configsystemprofileDesktopC:WindowsSysWOW64configsystemprofileDesktop(仅在 64 位 Windows 上( 这些文件夹需要存在,并且您正在使用的帐户需要具有对它们的读/写访问权限。

最新更新