更改纸张尺寸

时间:2013-11-16 10:23:12

标签: c# winforms printing crystal-reports

如何以编程方式更改打印对话框的纸张大小C#?

我想将纸张尺寸更改为用户定义的纸张尺寸,例如: 10x12 是我的Paper Size

如果您帮助我了解如何使用纸张尺寸 10x12 在Crystal Report中打印,那会更好。

请帮忙。

3 个答案:

答案 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)

请参阅本页寻找答案:

Answer for Paper Size

答案 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;