Scorpunduk

OutputPdf

Mar 24th, 2022
724
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.85 KB | None | 0 0
  1. public void OutputPdf()
  2.         {
  3.             /*
  4.             PrintDocument printDocument = new PrintDocument();
  5.             printDocument.PrinterSettings.PrinterName = PrinterName;
  6.             */
  7.            
  8.             PrintManager printManager = Doc.PrintManager;          
  9.            
  10.             printManager.SelectNewPrintDriver(PrinterName);
  11.             printManager.Apply();
  12.            
  13.             printManager.PrintRange = Autodesk.Revit.DB.PrintRange.Select;
  14.             printManager.Apply();
  15.            
  16.             //printManager.PrintToFileName = OutputFolder + @"\" + SheetName + ".xps";
  17.             //printManager.Apply();
  18.            
  19.             printManager.CombinedFile = false;
  20.             printManager.Apply();
  21.            
  22.             string settingName = "addinPrintPdfSetting";
  23.             Element existingPrintSettings = null;
  24.             TaskDialog.Show("","error");
  25.             try
  26.             {
  27.                 var settingsList = (from setId in Doc.GetPrintSettingIds()
  28.                 where Doc.GetElement(setId).Name == settingName
  29.                 select Doc.GetElement(setId)).ToList();
  30.                
  31.                 existingPrintSettings = settingsList.First();
  32.             }
  33.             catch{}
  34.            
  35.             /*
  36.             //TaskDialog.Show("info",(existingPrintSettings == null).ToString());
  37.            
  38.             PrintSetup printSetup = Doc.PrintManager.PrintSetup;
  39.            
  40.             using (Transaction saveSetupSetting = new Transaction(Doc, "Save settings"))
  41.             {
  42.                 saveSetupSetting.Start();
  43.                
  44.                 if(existingPrintSettings == null)
  45.                 {  
  46.                     TaskDialog.Show("","2");
  47.                     printSetup.CurrentPrintSetting = Doc.PrintManager.PrintSetup.InSession;
  48.                     printSetup.SaveAs(settingName);
  49.                 }
  50.                 else
  51.                 {
  52.                    
  53.                     printSetup.CurrentPrintSetting = existingPrintSettings as IPrintSetting;
  54.                 }      
  55.                 saveSetupSetting.Commit();
  56.             }
  57.            
  58.             TaskDialog.Show("Info", (printSetup.CurrentPrintSetting as PrintSetting).Name);
  59.             using (Transaction printSheet = new Transaction(Doc, "PrintSheet"))
  60.             {
  61.                 printSheet.Start();    
  62.                 TaskDialog.Show("","4");                
  63.                 printSetup.CurrentPrintSetting.PrintParameters.ZoomType = ZoomType.Zoom;
  64.                 printSetup.CurrentPrintSetting.PrintParameters.Zoom = 50;
  65.                 printSetup.Save();
  66.                
  67.                 printSheet.Commit();
  68.                    
  69.                     printSettings.PrintParameters.PaperPlacement = PaperPlacementType.Center;
  70.                     Manager.Apply();
  71.                     printSettings.PrintParameters.ColorDepth = ColorDepthType.BlackLine;
  72.                     Manager.Apply();
  73.                     printSettings.PrintParameters.HiddenLineViews = HiddenLineViewsType.VectorProcessing;
  74.                     Manager.Apply();
  75.                    
  76.                     Manager.PrintSetup.CurrentPrintSetting.PrintParameters.ZoomType = ZoomType.Zoom;
  77.                     Manager.Apply();
  78.                    
  79.                     //printSettings.PrintParameters.ZoomType = ZoomType.Zoom;
  80.                     //Manager.Apply();
  81.                     //printSettings.PrintParameters.Zoom = 100;
  82.                     //Manager.Apply();
  83.                     //printSettings.PrintParameters.RasterQuality = RasterQualityType.High;
  84.                     //Manager.Apply();
  85.                     //
  86.                     //printSettings.PrintParameters.PageOrientation = PageOrientationType.Portrait;
  87.                     //Manager.Apply();
  88.                     //printSettings.PrintParameters.PaperSize = GetPaperSizeByName("custom_1783*841");
  89.                     //Manager.Apply();
  90.                     Manager.PrintSetup.SaveAs("tempPS");
  91.                     Manager.Apply();                                    
  92.  
  93.                     // Полное имя для вывода файла .xps
  94.                     string fullOutputName = OutputFolder + @"\" + SheetName + ".xps";
  95.                     //string fullOutputName = OutputFolder + @"\" + SheetName + ".pdf";                
  96.  
  97.                     //Manager.PrintToFileName = fullOutputName;
  98.  
  99.                     //Manager.SubmitPrint(viewSheet);                    
  100.                                        
  101.                     //Manager.Apply();
  102.  
  103.                     printSheet.Commit();
  104.  
  105.                     //bool pdfPrinted = false;
  106.  
  107.                     // цикл для завершения итерации только после создания файла pdf
  108.                     // иначе могут возникать ошибки, если для всех печатаемых файлов
  109.                     // будет назначено одно и то же имя - файл не успевает появиться
  110.                     // в папке до следующего вызова DeleteExistPdf, что приводит
  111.                     // к ошибке File Already Exists!
  112.                     //while (!pdfPrinted)
  113.                     //{
  114.                     //    pdfPrinted = WaitForPdfPrinted(sheetName + ".pdf");
  115.                     //    Thread.Sleep(500);
  116.                     //}
  117.                     */                    
  118.         }
Advertisement
Add Comment
Please, Sign In to add comment