这是在论坛上看到的帖子,整理了一下。文章末尾给出论坛地址。
======================================================
winform打印,自己设置打印纸张大小例如500*800px。应该怎么做呢?
网上的资料找到有:
using System.Drawing.Printing;
PrintDocument pd = new PrintDocument();
PaperSize p=null;
foreach(PaperSize ps in pd.PrinterSettings.PaperSizes)
{ if(ps.PaperName.Equals("A3"))
p = ps;
}
pd.DefaultPageSettings.PaperSize = p;
pd.Print();
pd.DefaultPageSettings.PaperSize = new PaperSize("自定义名称",宽,长)
但是我运行了没有用。
====================================================
以下是我的总结,要是你也遇到相似问题可以参考,欢迎回帖交流
1、先在click事件里写代码
this.pageSetupDialog1.Document = this.printDocument1;
try
{
if (this.pageSetupDialog1.ShowDialog() == DialogResult.OK)
{
foreach (PaperSize paper in this.printDocument1.PrinterSettings.PaperSizes)
{
if (paper.PaperName == "新格式")
{
this.printDocument1.DefaultPageSettings.PaperSize = paper;
break;
}
}
this.printDocument1.Print();
}
}
catch (Exception excep)
{
MessageBox.Show(excep.Message, "print error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
2、在控制面板/打印机和传真/文件/服务器属性/
3、在创建新格式复选框前打钩
4、在表格名里填写你格式的名字(我写的新格式)
5、设置宽度、高度、边距
6、保存格式,确定
然后连接上打印机,在页面设置选项框里,选择你格式的名字(新格式),最后打印就好了。
每次重新运行后都要重新在页面设置选项框里,选择你格式的名字(新格式),最后打印,要是想默认为你设置的格式,要继续以下步骤:
1、在控制面板/打印机和传真的窗口里选择打印机,右键,属性
2、在属性窗口里,常规/打印首选项,选高级,纸张规格的下拉框里选择你的格式名字(新格式),确定
3、回到属性窗口里,高级(刚刚是常规)/打印默认值,选高级,纸张规格的下拉框里选择你的格式名字 (新格式),确定
好了,现在就已经全部结束了。
要是我有错误欢迎指出,或者有更好的办法也欢迎大家回帖!
我的5*8问题最后还有一点小BUG,有的时候会连续走好几张纸,第一张正确,但是后面会带出好几张空白纸,现在没有什么好的解决办法,有谁知道问题出在哪里吗?
=======================================
你的最后还有一点小BUG,估计是分页上有问题。
=======================================