Adobe pdf 打印机不创建 pdf 文件
Adobe pdf printer doesn't creating the pdf file
我正在 Revit 2017. The addin will export drawing sheets to PDF files. So, whenever I try to export the sheet a dialog box appears to choose the location to save. I tried to turn off the Prompting programmatically by adding a key to the Windows registry (as described in Adobe documentation page 15-16 中创建一个插件。
现在,提示已关闭,现在我遇到了一个问题。 问题是 Adobe 打印机在创建 pdf 文件时卡住了。见下图:PDF创建进度条好像卡住了,我等了10多分钟也没有创建pdf文件。
有人可以提供任何修复吗?
感谢任何建议。
编辑
这是我为此目的编写的代码。我希望这可能有助于确定问题。
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();
}
我已经解释了如何通过覆盖 Adobe 用于生成下一张打印件的 Revit.exe 进程的注册表项来实现此目的。
http://archi-lab.net/printing-pdfs-from-revit-why-is-it-so-hard/
请记住,您仍然需要通过 Revit PrintManager 进行打印,但是您可以在每次打印前设置注册表项以控制文件的保存位置。
我正在 Revit 2017. The addin will export drawing sheets to PDF files. So, whenever I try to export the sheet a dialog box appears to choose the location to save. I tried to turn off the Prompting programmatically by adding a key to the Windows registry (as described in Adobe documentation page 15-16 中创建一个插件。
现在,提示已关闭,现在我遇到了一个问题。 问题是 Adobe 打印机在创建 pdf 文件时卡住了。见下图:PDF创建进度条好像卡住了,我等了10多分钟也没有创建pdf文件。
有人可以提供任何修复吗? 感谢任何建议。
编辑 这是我为此目的编写的代码。我希望这可能有助于确定问题。
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();
}
我已经解释了如何通过覆盖 Adobe 用于生成下一张打印件的 Revit.exe 进程的注册表项来实现此目的。
http://archi-lab.net/printing-pdfs-from-revit-why-is-it-so-hard/
请记住,您仍然需要通过 Revit PrintManager 进行打印,但是您可以在每次打印前设置注册表项以控制文件的保存位置。