Adobe pdf打印机不会创建pdf文件

时间:2018-03-07 09:46:41

标签: pdf printing registry adobe acrobat

我正在Revit 2017创建一个加载项。插件将图纸导出为PDF文件。因此,每当我尝试导出工作表时,都会出现一个对话框,选择要保存的位置。我试图通过向Windows注册表添加密钥以编程方式关闭提示(如Adobe documentation page 15-16中所述)。

现在,提示已关闭,现在我正面临一个问题。 问题是Adobe Printer在创建pdf文件时卡住了。请参见下图: PDF创建进度条似乎已冻结,我等待的时间超过10分钟且未创建pdf文件

任何人都可以提供任何修复吗? 感谢任何建议。

PDF file doesn't get generate the progress seems frozen

修改 这是我为此目的编写的代码。我希望这有助于找出问题。

public static bool ExportSheetToPDF(Document doc, string path)
{
    using (Transaction tx = new Transaction(doc)
    {

        tx.Start("Exportint to PDF");         

        PrintManager pm = doc.PrintManager;
        pm.SelectNewPrintDriver("Adobe PDF");
        pm.Apply();
        pm.PrintRange = PrintRange.Current;
        pm.Apply();
        pm.CombinedFile = true;
        pm.Apply();
        pm.PrintToFile = true;
        pm.Apply();
        pm.PrintToFileName = path + @"\PDF\" + "abc.pdf";
        pm.Apply();
        SuppressAdobeDialogAndSaveFilePath(path + @"\PDF\" + "abc.pdf");

        pm.SubmitPrint();
        pm.Apply();
        tx.Commit();

    }
    return true;
}

// Add Registry Key to suppress the dialog box
public static void SuppressAdobeDialogAndSaveFilePath(string value)
{
    var valueName = @"C:\Program Files\Autodesk\Revit 2017\Revit.exe";
    var reg = currentUser.OpenSubKey(key, true);
    var tempReg = reg.OpenSubKey(valueName);
    if (tempReg == null)
    {
        reg = reg.CreateSubKey(valueName);
    }
    reg.SetValue(valueName, value);
    reg.Close();
}

1 个答案:

答案 0 :(得分:1)

我已经解释了如何通过覆盖Adobe用于生成下一个打印的Revit.exe进程的注册表项来实现此目的。

http://archi-lab.net/printing-pdfs-from-revit-why-is-it-so-hard/

请记住,您仍然需要通过Revit PrintManager进行打印,但是您可以在每次打印之前设置注册表项以控制文件的保存位置。