简体   繁体   English

刷新后 PrintControl 失去边距

[英]After refresh PrintControl looses margins

At app starting, the print control generates OK with 25.4mm margins (on all sides), but after refresh it changes to 5.08mm.在应用程序启动时,打印控件生成 25.4 毫米边距(在所有边)的 OK,但在刷新后它变为 5.08 毫米。

I use a control named Print Bar .我使用一个名为Print Bar的控件。 The below code does not work.下面的代码不起作用。

The BeginPrint and PrintPage method: link BeginPrint 和 PrintPage 方法: 链接

Print before之前打印

之前打印 之后打印

Can I force somehow the margins?我可以以某种方式强制利润吗?

My refresh code is:我的刷新代码是:

    private void setupReport()
    {
        PaperSize ps = new PaperSize();
        ps.RawKind = 9;
        printDocument1.PrinterSettings.DefaultPageSettings.PaperSize = ps;
        printDocument1.PrinterSettings.DefaultPageSettings.Margins = new Margins(10, 10, 10, 10);
        ////printDocument1.PrinterSettings.DefaultPageSettings.PaperSource = ;

        this.preview = new System.Windows.Forms.PrintPreviewControl();
        this.preview.Dock = System.Windows.Forms.DockStyle.Fill;

        this.preview.Document = this.printDocument1;

        this.preview.Location = new System.Drawing.Point(3, 42);
        this.preview.Name = "printPreviewControl1";
        this.preview.Size = new System.Drawing.Size(786, 362);
        this.preview.TabIndex = 2;

        this.ucPrintBar1.PreviewControl = this.preview;
        this.tabPage3.Controls.Add(this.preview);
        this.ucPrintBar1.loadDefaults();
        
    }

I added the following five lines to setupReport() method's first line:我在setupReport()方法的第一行添加了以下五行:

private void setupReport()
{
    this.ucFormManagement1.addExtra("LeftMargin",printDocument1.DefaultPageSettings.Margins.Left);
    this.ucFormManagement1.addExtra("RightMargin", printDocument1.DefaultPageSettings.Margins.Right);
    this.ucFormManagement1.addExtra("BottomMargin", printDocument1.DefaultPageSettings.Margins.Bottom);
    this.ucFormManagement1.addExtra("TopMargin", printDocument1.DefaultPageSettings.Margins.Top);
    this.ucFormManagement1.addExtra("Orientation", printDocument1.DefaultPageSettings.Landscape);

    this.preview = new System.Windows.Forms.PrintPreviewControl();
    this.preview.Dock = System.Windows.Forms.DockStyle.Fill;

    this.preview.Document = this.printDocument1;

    this.preview.Location = new System.Drawing.Point(3, 42);
    this.preview.Name = "printPreviewControl1";
    this.preview.Size = new System.Drawing.Size(786, 362);
    this.preview.TabIndex = 2;

    this.ucPrintBar1.PreviewControl = this.preview;
    this.tabPage3.Controls.Add(this.preview);
    this.ucPrintBar1.loadDefaults(); 
}

Now the print refresh works like it should.现在打印刷新工作正常。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM