打印表单时出错

时间:2017-01-26 10:58:28

标签: forms printing

大家好我在this.printPreviewDialog1中遇到错误(项目no包含printviewdialog的定义,printviewdialog没有扩展,接受类型为Project print的第一个参数。我已经添加了参考System.Printing和System.Windows.Form.Data Visualization。我想念的是什么?谢谢

public partial class Print : Form
{
    public Print()
    {
        InitializeComponent();
          this.button1.Click += button1_Click;
        this.printDocument1.PrintPage += printDocument1_PrintPage;
    }

    private void Print_Load(object sender, EventArgs e)
    {

    }


    private void button1_Click(object sender, EventArgs e)
    {

        this.printPreviewDialog1.Document = this.printDocument1;
        this.printPreviewDialog1.Document.DocumentName = "PictureTextDesignerFile1";
        this.printPreviewDialog1.Size = new Size(800, 600);
        this.printPreviewDialog1.ShowDialog();



    }



    private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {
        float neededWidth = 700 ;

        float neededHeight = 1100;

        float availableWidth = 700;
        float availableHeight = 1100;

        e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
        e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
        e.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;

        Bitmap bmpPrint = null;

        try
        {
            double multiplier = neededWidth / neededHeight;
            double dblRef = availableWidth / availableHeight;
            float zoom = 1;

            if (multiplier >= dblRef)
            {
                zoom = availableWidth / neededWidth;
            }
            else
            {
                zoom = availableHeight / neededHeight;
            }

            bmpPrint = new Bitmap(this.Width, this.Height);
            bmpPrint.SetResolution(300, 300);
            this.DrawToBitmap(bmpPrint, new Rectangle(0, 0, bmpPrint.Width, bmpPrint.Height));

            e.Graphics.Clip = new Region(e.MarginBounds);
            e.Graphics.DrawImage(bmpPrint, e.MarginBounds.Left, e.MarginBounds.Top, Math.Min(neededWidth * zoom, availableWidth), Math.Min(neededHeight * zoom, availableHeight));
            e.Graphics.Clip.Dispose();
        }
        catch
        {
        }
        finally
        {
            if ((bmpPrint != null))
            {
                bmpPrint.Dispose();
                bmpPrint = null;
            }
        }







}

0 个答案:

没有答案