无法安装Pdftron虚拟打印机

时间:2016-11-10 15:32:45

标签: pdf printing virtual pdftron

在我的ASP .Net应用程序中,我正在使用'PDFTron 6.0.1.0'。 在将我的docx文件转换为xod(使用pdftron.PDF.Convert.ToXod方法)之前,我们正在检查是否存在虚拟打印机,如果不存在则安装它。为此,我们使用以下代码:

private void CheckIfVirtualPrinterRequired(string inputFilePath, out bool uninstallVirtualPrinter)
{
    uninstallVirtualPrinter = false;
    if (pdftron.PDF.Convert.RequiresPrinter(inputFilePath))
    {
        if (pdftron.PDF.Convert.Printer.IsInstalled("PDFTron Creator"))
        {
            pdftron.PDF.Convert.Printer.SetPrinterName("PDFTron Creator");
        }
        else if (!pdftron.PDF.Convert.Printer.IsInstalled())
        {
            pdftron.PDF.Convert.Printer.Install();
            uninstallVirtualPrinter = true;
        }
    }
}

然而,在'pdftron.PDF.Convert.Printer.Install();'代码,我得到SEHException:

  

外部组件抛出异常。堆栈跟踪:at   trn.PDF.Convert.Printer.Install(UString *)at   pdftron.PDF.Convert.Printer.Install()at   *****。PDFTronService.CheckIfVirtualPrinterRequired(String inputFilePath,Boolean& uninstallVirtualPrinter)in   c:*** \ PDFTronService.cs:第126行

我在手动安装64位版本的“PDFTron Creator”和“PDFTron PDFNet”打印机后尝试过,但转换仍然失败并显示错误:

  

无法转换文件,尝试次数过多。条件表达式:   false,文件名:Convert.cpp,功能:   trn :: PDF :: Convert :: ToPdf,Linenumber:1742 at   pdftron.PDF.Convert.ToXod(inputFilePath,outFileName);

请帮助解决这个问题。

1 个答案:

答案 0 :(得分:0)

首先,如果安装了MS Office,则Office转换实际上不需要虚拟打印机。如果安装了MS Office,PDFNet将使用Interop进行通信。 RequiresPrinter对office文档返回true,尽管它对office文档来说确实是可选的。

虚拟打印机通常用于其他文件类型,例如AutoCad DWG。

如果您没有安装MS Office,并希望使用LibreOffice之类的东西转换办公文档,那么您需要虚拟打印机。

此外,您只需要安装一次打印机。不是每次都想转换。

要安装虚拟打印机,您需要以提升的权限运行,并且PDFNet 32​​bit | 64bit需要与您的OS 32bit | 64bit匹配。

如果SEH错误仍然存​​在,那么我建议您尝试使用最新版本的PDFNet。