void SetUpSizeAndPrint( Autodesk.Revit.DB.ViewSheet vs, Autodesk.Revit.DB.PrintManager printManager, Autodesk.Revit.DB.IPrintSetting printSetting ) { Autodesk.Revit.DB.BoundingBoxUV bbUV = vs.Outline; double x = UnitUtils.ConvertFromInternalUnits( bbUV.Max.U - bbUV.Min.U, Autodesk.Revit.DB.DisplayUnitType.DUT_MILLIMETERS); double y = UnitUtils.ConvertFromInternalUnits( bbUV.Max.V - bbUV.Min.V, Autodesk.Revit.DB.DisplayUnitType.DUT_MILLIMETERS); if (x == 0 || y == 0) { return; } string sheetSize = GetSheetSize(x, y, 100); if (x > y) { printSetting.PrintParameters.PageOrientation = Autodesk.Revit.DB.PageOrientationType.Landscape; } else { printSetting.PrintParameters.PageOrientation = Autodesk.Revit.DB.PageOrientationType.Portrait; } foreach (Autodesk.Revit.DB.PaperSize ps in printManager.PaperSizes) { if (ps.Name == sheetSize) { printSetting.PrintParameters.PaperSize = ps; break; } } Trace.Write("Selected paper sized: " + printSetting.PrintParameters.PaperSize.Name); using (Autodesk.Revit.DB.Transaction t = new Autodesk.Revit.DB.Transaction(vs.Document)) { t.Start("temp"); printManager.PrintSetup.CurrentPrintSetting = printSetting; //printManager.Apply(); printManager.PrintSetup.SaveAs("temp"); printManager.SubmitPrint(vs); //vs.Print(true); t.RollBack(); } }
void SetUpSizeAndPrint(Autodesk.Revit.DB.ViewSheet vs, Autodesk.Revit.DB.PrintManager printManager, Autodesk.Revit.DB.IPrintSetting printSetting) { Autodesk.Revit.DB.BoundingBoxUV bbUV = vs.Outline; double x = bbUV.Max.U - bbUV.Min.U; double y = bbUV.Max.V - bbUV.Min.V; if (x == 0 || y == 0) { return; } x = Converter.ConvertFromInternalUnits(x, Autodesk.Revit.DB.DisplayUnitType.DUT_MILLIMETERS); y = Converter.ConvertFromInternalUnits(y, Autodesk.Revit.DB.DisplayUnitType.DUT_MILLIMETERS); Trace.Write("x = " + x + "; y = " + y); string sheetSize = GetSheetSize(x, y, 100); if (x > y) { printSetting.PrintParameters.PageOrientation = Autodesk.Revit.DB.PageOrientationType.Landscape; } else { printSetting.PrintParameters.PageOrientation = Autodesk.Revit.DB.PageOrientationType.Portrait; } Trace.Write("sheetSize = " + sheetSize + "; PageOrientation: " + printSetting.PrintParameters.PageOrientation.ToString()); foreach (Autodesk.Revit.DB.PaperSize ps in printManager.PaperSizes) { if (ps.Name == sheetSize) { Trace.Write("ps.Name = " + ps.Name); printSetting.PrintParameters.PaperSize = ps; break; } } using (Autodesk.Revit.DB.Transaction t = new Autodesk.Revit.DB.Transaction(vs.Document)) { t.Start("temp"); printManager.PrintToFileName = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments) + vs.Name + ".pdf"; printManager.PrintSetup.CurrentPrintSetting = printSetting; printManager.PrintSetup.SaveAs("temp"); printManager.Apply(); vs.Print(true); t.RollBack(); /*unsafe { * System.IntPtr hwnd = NativeDlls.FindWindow(null, "Сохранить PDF-файл как"); * Trace.Write("hwnd = " + hwnd.ToInt64()); * if (hwnd.ToInt64() > 0) { * long lResult = NativeDlls.SendMessage(hwnd, 16, 0, 0); * } * }*/ } }