2016-11-10 119 views
1

在我的ASP .Net應用程序中,我正在使用'PDFTron 6.0.1.0'。 在將我的docx文件轉換爲xod(使用pdftron.PDF.Convert.ToXod方法)之前,我們檢查是否存在虛擬打印機,如果不存在,請安裝它。爲此,我們使用以下代碼:無法安裝Pdftron虛擬打印機

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:的「PDFTron Creator」和「PDFTron PDFNet」打印機

External component has thrown an exception. Stack Trace: at trn.PDF.Convert.Printer.Install(UString*) at pdftron.PDF.Convert.Printer.Install() at *****.PDFTronService.CheckIfVirtualPrinterRequired(String inputFilePath, Boolean& uninstallVirtualPrinter) in c:***\PDFTronService.cs:line 126

我已經後試圖手動安裝64位版本,但轉換仍失敗,出現錯誤:

Unable to convert file, too many attempts. Conditional expression: false, Filename : Convert.cpp, Function : trn::PDF::Convert::ToPdf, Linenumber : 1742 at pdftron.PDF.Convert.ToXod(inputFilePath, outFileName);

請幫助解決這個問題。

回答

0

首先,虛擬打印機實際上並不需要Office轉換,如果您安裝了MS Office。如果安裝了MS Office,PDFNet將使用Interop進行通信。 RequiresPrinter對於辦公文檔返回true,但對於office文檔來說它是真正可選的。

虛擬打印機通常用於其他文件類型,例如, AutoCad DWG。

如果您沒有安裝MS Office,並且希望使用類似LibreOffice的東西來轉換Office文檔,那麼您需要虛擬打印機。

此外,您只需要安裝一次打印機。不是每次你想要轉換。

要安裝虛擬打印機,您需要使用提升的權限運行,並且PDFNet 32​​位| 64位需要與您的操作系統32位| 64位匹配。

如果SEH錯誤仍然存​​在,那麼我會推薦使用最新版本的PDFNet。