无法安装 Pdftron 虚拟打印机
Unable to in install Pdftron Virtual Printer
在我的 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:
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 位版本的“PDFTron Creator' and 'PDFTron PDFNet”打印机,但转换仍然失败并出现错误:
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);
请帮忙解决这个问题。
首先,如果您安装了 MS Office,Office 转换实际上不需要虚拟打印机。如果安装了 MS Office,PDFNet 将使用 Interop 进行通信。 RequiresPrinter returns 对于 office 文档是正确的,尽管它对于 office 文档是可选的。
虚拟打印机通常用于其他文件类型,例如AutoCad DWG。
如果您没有安装 MS office,并且想使用 LibreOffice 之类的工具转换 office 文档,那么是的,您需要虚拟打印机。
此外,您只需安装一次打印机。不是每次都想转换。
要安装虚拟打印机,您需要 运行 提升权限,并且 PDFNet 32 位|64 位需要与您的 OS 32 位|64 位匹配。
如果 SEH 错误仍然存在,那么我建议尝试使用最新版本的 PDFNet。
在我的 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:
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 位版本的“PDFTron Creator' and 'PDFTron PDFNet”打印机,但转换仍然失败并出现错误:
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);
请帮忙解决这个问题。
首先,如果您安装了 MS Office,Office 转换实际上不需要虚拟打印机。如果安装了 MS Office,PDFNet 将使用 Interop 进行通信。 RequiresPrinter returns 对于 office 文档是正确的,尽管它对于 office 文档是可选的。
虚拟打印机通常用于其他文件类型,例如AutoCad DWG。
如果您没有安装 MS office,并且想使用 LibreOffice 之类的工具转换 office 文档,那么是的,您需要虚拟打印机。
此外,您只需安装一次打印机。不是每次都想转换。
要安装虚拟打印机,您需要 运行 提升权限,并且 PDFNet 32 位|64 位需要与您的 OS 32 位|64 位匹配。
如果 SEH 错误仍然存在,那么我建议尝试使用最新版本的 PDFNet。