2017-04-14 148 views
0

我已经成功创建了一个程序来创建PDF文件,而无需重新格式化文件名(Revit去掉点并放入破折号,并在整个模型中为文件名加前缀名称)。但是,一旦PDF被“创建”,它仍然移植到Bluebeam Revu(REAL保存到文件的位置)。如何让Revit在指定的文件夹中创建具有指定名称的文件,而无需调用Bluebeam“中介”对话框?如何在打印PDF时不使用Bluebeam打开revu PDF的

//this is my code as written.... 


string PDF_Path = "C:\\Revit Local\\" + Each_Sheet + " - " + Each_Name + ".pdf"; 
IPrintSetting PDF_Sets = PDF_Manage.PrintSetup.CurrentPrintSetting; 
PrintParameters PDF_Params = PDF_Sets.PrintParameters; 
PDF_Params.PaperSize.Equals(Use_Size); 
PDF_Params.PageOrientation = PageOrientationType.Landscape; 
PDF_Params.ZoomType = ZoomType.Zoom; 
PDF_Params.Zoom = 100; 
PDF_Params.PaperPlacement = PaperPlacementType.Center; 
PDF_Params.HideReforWorkPlanes = true; 
PDF_Params.HideUnreferencedViewTags = true; 
PDF_Params.HideCropBoundaries = true; 
PDF_Params.HideScopeBoxes = true; 
PDF_Params.ColorDepth = ColorDepthType.GrayScale; 
PDF_Manage.SubmitPrint(uiDoc.ActiveView) 
PDF_Manage.PrintToFileName = "MyFileNameVariable.pdf"; 

我尝试了“...... PrintParameters”的各种选项,并似乎没有抑制由定义打印机调出的对话框。

+0

哦,并且PDF_Manage.PrintToFileName位于SubmitPrint(uiDoc.ActiveView)。我正在复制另外两行代码,并将它们放在我的问题的错误位置 – KeachyPeenReturns

+0

UPDATE:Bluebeam有一个设置,它的管理员工具可以关闭文件名o的提示ption。但是,不会在PDF_Manage.PrintToFileName位置下指定的位置创建PDF文件。 – KeachyPeenReturns

+0

默认的BlueBeam位置是Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) – KeachyPeenReturns

回答

0

这里是你展示如何打印到PDF和控制输出文件名和路径的完整示例:

http://thebuildingcoder.typepad.com/blog/2013/06/auto-pdf-print-from-revit-2014.html

+0

谢谢,但上面的建议不适用于BlueBeam。当“提示输入文件名”选项关闭时,文件被定向到MyDocuments。我编写了代码,然后将该文件夹中的文件复制到由我的PDF_Manage.PrintToFileName =“MyFileNameVariable.pdf”定义的位置; – KeachyPeenReturns

+0

但这似乎受到“SubmitPrint”后File.Exists检测到“完成”文件的速度有限的限制.....如果找不到(尚未),我显然无法将其复制到所需的位置。这是Revit和BlueBeam之间的界面中的一个错误 - 它应该只将文件放在PDF_Manage.PrintToFileName请求的地方。 – KeachyPeenReturns

+0

所以我添加了一个TaskDialog(是/否选项),等待用户输入“继续并复制找到的文件”。 (复杂的纸张可能需要几秒钟才能“完成” – KeachyPeenReturns

1

没有与BlueBeam没有直接的方法。您必须启动BlueBeam管理员并取消选中“提示输入文件名”选项(如果开启该选项,则会调用BlueBeam Revu的对话框控件)。通过以下当你把它关掉,你的文件(用正确的名称,但没有路径)被放置在你的我的文档文件夹中(访问:在创建文件后

Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) 

(注意,“转换”等,可能会延迟它们可用于复制),那么可以将它们复制到由您的PDF_Mage.PrintToFileName指定的FOLDER。我通过插入一个TaskDialog来暂停,直到准备好。