用PageSetupDialog
PageSetupDialog cmicPagSetup=new PageSetupDialog();
cmicPagSetup.Document=printDocument1; 
cmicPagSetup.ShowDialog();

解决方案 »

  1.   

    也许我上面讲的不是很清楚!
    我现在需要套打,我的做法是把需要打印的作成一个Graphics。
    但现在的问题是,我的Graphics的大小不是固定的,所以我也不可以去自己设置一个纸张。
    所以我想用代码制作一个纸张大小,然后去打。
    请问我应该做??
    请大家帮忙,真的很急
      

  2.   

    这个好像不是很现实,如果你打印的图片或者是内容超过打印机支持的范围怎么办?
    还有,在Window的设置下面,选择服务器属性,定义自定义纸张,在打印的时候调用,这样才是一个正规的方法。所以说,你可不可以根据预览,让用户自己酌情选择纸张的大小呢?
      

  3.   

    to  brightheroes(闭关|特别想砍暗黑......) 我现在也这样想!但我现在怎样去调用我自定义的纸张呢!
      

  4.   

    给你个简单的小例子
    首先,摆放一个printDocument和一个combobox在界面上
    在程序里面写:for (int i =0;i<this.printDocument1 .PrinterSettings .PaperSizes .Count ;i++)
    {
    if (this.printDocument1 .PrinterSettings .PaperSizes.Count <=0) 
    {
    uncString.ShowInformation ("打印机没有安装或没有联机!");
    }
    else
    {
    this.comboBox1.Items .Add (this.printDocument1 .PrinterSettings .PaperSizes[i].PaperName);
    }
    }this.printDocument1 .PrinterSettings .PaperSizes会列出所有的服务器属性中列出的纸张.this.printDocument1 .PrinterSettings .PaperSizes[i].PaperName就是纸张i的名称如果你自己定义了纸张的话,你肯定可以看到
      

  5.   

    然后用PrintDocument打印的时候
     PrintDocument pd = new PrintDocument(); 
     pd.DefaultPageSettings .PaperSize = this.printDocument1 .PrinterSettings .PaperSizes [this.comboBox1 .SelectedIndex ];这样,就指定了打印纸张的名称
      

  6.   

    但现在是我在打印机--服务器属性---添加了一张  且大小格式为和a4差不多!a4是  21 29.7
    我新建了一个是
    a4_c  21  29.7 但是却在你的方法里面去找不出来呢?
      

  7.   

    应该可以罗列出来的
    你要在
    【开始】---【设置】---【打印机和传真】
    进去之后,右键,--服务器属性--添加打印纸张这个里添加
    因为this.printDocument1 .PrinterSettings .PaperSizes列出的是这个里面的纸张,而不是打印机里面的纸张
      

  8.   

    对!!
    在combox里面中没有!!
    但是我进具体打印机中去看,有我定义的纸张类型!
    我需要调用纸张是不是按照纸张的papername只找!
    还是要按照papersize去找?
      

  9.   

    请参见:http://expert.csdn.net/Expert/topic/3127/3127958.xml?temp=.1856195
    要领是把页面设置的代码放到“PrintPage”之外,如构造函数或 whxleem(feeling)说的初始化函数里就行了。
    祝好运。