如何以编程方式更改打印对话框的纸张大小C#?
我想将纸张尺寸更改为用户定义的纸张尺寸,例如: 10x12 是我的Paper Size
。
如果您帮助我了解如何使用纸张尺寸 10x12 在Crystal Report中打印,那会更好。
请帮忙。
答案 0 :(得分:1)
以下是改变纸张大小的两种方法。请记住,打印机必须能够处理您指定的纸张尺寸!
我们可以使用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后,我们需要使用modify方法来应用这些设置。这些值未经过验证,因此当我们尝试打印时,我们可能会抛出异常。
boReportClientDocument.PrintOutputController.ModifyPrintOptions(boPrintOptions);
我们更改打印选项的其他选项是使用可用的修改方法。这些更好用,因为我们不必获取以前的值,设置我们想要的那些然后使用先前的修改方法,我们可以直接设置我们想要更改的属性。这些测量结果是缇。每英寸1440缇。使用下面的Modify方法时,值将被验证,如果值不可接受,或者新的打印机名称不可用,则会引发异常。这条线设置了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);
答案 1 :(得分:1)
请参阅本页寻找答案:
答案 2 :(得分:0)
试试这段代码:
CRAXDRT.Report report1 = new CRAXDRT.Report();
CRAXDRT.Application app1 = new CRAXDRT.Application();
report1 = app1.OpenReport(@"F:\YourReport.rpt", OpenReportMethod.OpenReportByDefault);
report1.PaperSize = CRPaperSize.crPaper10x14;