Вот два способа изменения размера papaer. Имейте в виду, что принтер должен иметь возможность указывать указанный размер бумаги!
Мы можем установить параметры печати с помощью класса PrintOptions. Мы должны получить PrintOptions с отчетом, чтобы мы только установили свойства, которые мы меняем.
PrintOptions boPrintOptions = boReportClientDocument.PrintOutputController.GetPrintOptions();
boPrintOptions.DissociatePageSizeAndPrinterPaperSize = false;
boPrintOptions.DriverName = "my printer driver name";
boPrintOptions.PageContentHeight = 11;
boPrintOptions.PageContentWidth = 8;
PageMargins boPageMargins = new PageMargins();
boPageMargins.Bottom = 1;
boPageMargins.Top = 1;
boPageMargins.Left = 1;
boPageMargins.Right = 1;
boPrintOptions.PageMargins = boPageMargins;
boPrintOptions.PaperOrientation = CrPaperOrientationEnum.crPaperOrientationDefault;
boPrintOptions.PaperSize = CrPaperSizeEnum.crPaperSizeDefault;
boPrintOptions.PaperSource = CrPaperSourceEnum.crPaperSourceAuto;
boPrintOptions.PortName = "";
boPrintOptions.PrinterDuplex = CrPrinterDuplexEnum.crPrinterDuplexDefault;
boPrintOptions.PrinterName = @"\\van-s-prt01\VAN-P-OLYMPIA";
После того, как мы установили PrintOptions, мы хотим использовать метод изменения для применения этих параметров. Эти значения не проверяются, поэтому мы можем получить исключение, когда мы пытаемся распечатать.
boReportClientDocument.PrintOutputController.ModifyPrintOptions(boPrintOptions);
Наша другая опция для изменения параметров печати заключается в использовании доступных методов модификации. Они удобнее использовать, поскольку нам не нужно получать предыдущие значения, устанавливать те, которые нам нужны, затем использовать предыдущий метод модификации, мы можем напрямую установить свойства, которые мы хотим изменить. Эти измерения находятся в двух направлениях. 1440 т/дюйм. При использовании методов Modify ниже значения проверяются и генерируют исключение, если это недопустимо, или новое имя принтера недоступно. Эта строка устанавливает PaperSize 11 дюймов высоты, 8 дюймов широкое:
boReportClientDocument.PrintOutputController.ModifyUserPaperSize((11 * 1440), (8 * 1440));
boReportClientDocument.PrintOutputController.ModifyPageMargins(1, 1, 1, 1);
boReportClientDocument.PrintOutputController.ModifyPaperOrientation(CrPaperOrientationEnum.crPaperOrientationLandscape);
boReportClientDocument.PrintOutputController.ModifyPrinterName(@"\\van-s-prt01\VAN-P-OLYMPIA");
//Print the report.
boReportClientDocument.PrintOutputController.PrintReport(null);
Можете ли вы показать версию кода на C#? – Bhaskar