打印设置
//打印设置
PrinterSettings pSet = new PrinterSettings();
//打印方向设置
pSet.DefaultPageSettings.Landscape = false;//纵向打印
pSet.DefaultPageSettings.Landscape = true;//横向打印
//纸张大小设置
int pWidth = 297;//A3纸张的宽
int pHeight = 420;//A3纸张的高
PaperSize paperSize = new PaperSize("A3", (int)(pWidth * 100 / 2.54), (int)(pHeight * 100 / 2.54));
paperSize.RawKind = (int)PaperKind.A3;
pSet.DefaultPageSettings.PaperSize = paperSize;
打印文档
//打印文档
PrintDocument pDoc= new PrintDocument();
//设置打印事件
pDoc.PrintPage += new PrintPageEventHandler(pDoc_PrintPage);
void printdocument_PrintPage(object sender, PrintPageEventArgs e)
{
Graphics g = e.Graphics;
//绘制地图
g.DrawImage((bitmap as Image), e.PageBounds);
//绘制文本
g.Dispose();
}
打印对话框及打印
//打印对话框
PrintDialog pDlg = new PrintDialog();
//初始化打印对话框中的打印设置
pDlg.PrinterSettings = pSet;
if (pDlg.ShowDialog() == DialogResult.OK)
{
pSet = pDlg.PrinterSettings;
pDoc.PrinterSettings = pSet;
//开启页边距设置
pDoc.OriginAtMargins = true;
//记录页边距以便还原
Margins tempMargins = pDoc.DefaultPageSettings.Margins;
//设置页边距
pDoc.DefaultPageSettings.Margins = new Margins(0, 0, 0, 0);
//打印
pDoc.Print();
//还原页边距
pDoc.DefaultPageSettings.Margins = tempMargins;
}
注意:paperSize.RawKind = (int)PaperKind.A3;
是必须的,打开打印对话框后默认配置不是A3通常就是因为缺少该项设置。