谁有打印的代码,给一段看看呗~~~~~

xiaochongsun 2003-05-23 03:18:07
谁有打印的代码,给一段看看呗~~~~~


谢谢大家了.


多多给分.....


...全文
72 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Montaque 2003-05-24
  • 打赏
  • 举报
回复
http://download.microsoft.com/download/e/d/2/ed214d90-68c3-400f-8ae4-b616845af10b/101vbnetsamples.exe

里面有打印的例子。

http://expert.csdn.net/Expert/TopicView1.asp?id=1762366
xiaochongsun 2003-05-23
  • 打赏
  • 举报
回复
还没看呢~~~


先谢了..

wangjingjing390 2003-05-23
  • 打赏
  • 举报
回复
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
Graphics g=e.Graphics;
g.TextRenderingHint=TextRenderingHint.ClearTypeGridFit;//最高质量的打印
float leftMargin =e.MarginBounds.Left; //左边距
float topMargin = e.MarginBounds.Top; //顶边距
float curX=leftMargin;
float curY=topMargin;
curX-=20; //调整左边距


SolidBrush sb=new SolidBrush(Color.Black); //字体是黑色
StringFormat sf=new StringFormat();
sf.Alignment=StringAlignment.Near;
sf.Trimming=StringTrimming.Character; //左对齐,按字裁减
StringFormat sf1=new StringFormat();
sf1.Alignment=StringAlignment.Center;
sf1.Trimming=StringTrimming.None; //居中,不裁减
StringFormat sf2=new StringFormat();
sf2.Alignment=StringAlignment.Center;
sf2.Trimming=StringTrimming.Character;
sf2.FormatFlags=StringFormatFlags.DirectionVertical; //居中,纵向,按字裁减

Pen pen=new Pen(Color.Black,1.0f); //画笔对象,黑色,宽1像素
pen.Alignment=PenAlignment.Right; //对齐方式为右对齐

Font font0=new Font("宋体",30,FontStyle.Bold); //宋体,30号字,加粗
Font font1=new Font("宋体",18,FontStyle.Regular); //宋体,18号字,普通
Font font2=new Font("宋体",18,FontStyle.Bold); //宋体,18号字,加粗
Font font3=new Font("宋体",20,FontStyle.Bold); //宋体,20号字,加粗
Font font4=new Font("宋体",18,FontStyle.Underline|FontStyle.Bold); //宋体,18号字,下划线加粗
Font font5=new Font("宋体",12,FontStyle.Bold); //宋体,12号字,加粗
RectangleF rcf =new RectangleF();
rcf.X=curX;
rcf.Y=curY;
rcf.Height=40f;
rcf.Width=e.MarginBounds.Width;
rcf.Y+=50;

g.DrawString("调剂函",font0,sb,rcf,sf1);

rcf.Y+=100;

g.DrawLine(pen,new Point((int)rcf.X,(int)rcf.Y+23),new Point((int)rcf.X+300,(int)rcf.Y+23));
g.DrawString("研招办:",font1,sb,rcf.X+350,rcf.Y ,sf1);

rcf.Y+=100;

g.DrawString(" 我校根据教高(2001) 6号文件精神,拟从2003年全国",font1,sb,rcf.X,rcf.Y,sf);

rcf.Y+=50;
g.DrawString("硕士统考生中调剂部分工学考生到我校软件学院按软件工",font1,sb,rcf.X,rcf.Y,sf);

rcf.Y+=50;
g.DrawString("程硕士录取。贵校 考生,编号 ",font1,sb,rcf.X,rcf.Y,sf);
g.DrawLine(pen,new Point((int)rcf.X+208,(int)rcf.Y+23),new Point((int)rcf.X+306,(int)rcf.Y+23));
g.DrawLine(pen,new Point((int)rcf.X+425,(int)rcf.Y+23),new Point((int)(rcf.X+rcf.Width),(int)rcf.Y+23));
rcf.Y+=50;
g.DrawString("符合我校调剂条件,若未被贵校录取,请将其报名材料及",font1,sb,rcf.X,rcf.Y,sf);

rcf.Y+=50;
g.DrawString("试卷转至我校软件学院办公室。谢谢!",font1,sb,rcf.X,rcf.Y,sf);

rcf.Y+=100;
g.DrawString("北京航空航天大学",font1,sb,rcf.X+350,rcf.Y,sf);

rcf.Y+=50;
g.DrawString("研究生招生办公室",font1,sb,rcf.X+350,rcf.Y,sf);

rcf.Y+=50;
g.DrawString("二零零三年四月十五日",font1,sb,rcf.X+350,rcf.Y,sf);

rcf.Y+=150;
g.DrawString("注:",font5,sb,rcf.X,rcf.Y,sf);

rcf.Y+=30;
g.DrawString("邮寄地址:",font5,sb,rcf.X,rcf.Y,sf);

rcf.Y+=30;
g.DrawString("北京航空航天大学软件学院",font5,sb,rcf.X,rcf.Y,sf);

rcf.Y+=30;
g.DrawString("邮政编码: 100083",font5,sb,rcf.X,rcf.Y,sf);

//***********************************************************
//以下是打印数据库中提取的内容
//***********************************************************
rcf.Y=curY+150;
if(this.radioButton1.Checked==true)
{
CurrencyManager cm;
cm=(CurrencyManager)dataGrid1.BindingContext[dataGrid1.DataSource];
DataRowView drv;
drv =(DataRowView)cm.Current;
DataRow myDataRow = drv.Row;
g.DrawString("编号 "+myDataRow[0].ToString().Trim(),font3,sb,100,20,sf1);
if(myDataRow[1].ToString()!="")
{
g.DrawString(myDataRow[1].ToString().Trim(),font2,sb,rcf.X,rcf.Y ,sf);
}
rcf.Y+=200;
g.DrawString(myDataRow[2].ToString().Trim(),font2,sb,rcf.X+210,rcf.Y ,sf);
g.DrawString(myDataRow[3].ToString().Trim(),font2,sb,rcf.X+426,rcf.Y ,sf);
// g.DrawString(myDataRow[4].ToString().Trim(),font2,sb,rcf.X+350,rcf.Y ,sf);
e.HasMorePages=false;
}
else if(this.radioButton2.Checked==true)
{
DataRow myDataRow=this.ds1.final.Rows[cur];

g.DrawString("编号 "+myDataRow[0].ToString().Trim(),font3,sb,100,20,sf1);
if(myDataRow[1].ToString()!="")
{
g.DrawString(myDataRow[1].ToString().Trim(),font2,sb,rcf.X,rcf.Y ,sf);
}
rcf.Y+=200;
g.DrawString(myDataRow[2].ToString().Trim(),font2,sb,rcf.X+210,rcf.Y ,sf);
g.DrawString(myDataRow[3].ToString().Trim(),font2,sb,rcf.X+426,rcf.Y ,sf);
// g.DrawString(myDataRow[4].ToString().Trim(),font2,sb,rcf.X+350,rcf.Y ,sf);
if(this.cur<this.all-1)
{
this.cur++;
e.HasMorePages=true;
}
else
{
e.HasMorePages=false;
}
}
}
meattvb 2003-05-23
  • 打赏
  • 举报
回复
这是打印窗体的代码,你可以参考以下:

' Specifies what happens when the PrintPage event is raised.
Private Sub pd_PrintPage(ByVal sender As Object, ByVal ev As PrintPageEventArgs)
Dim obj As Bitmap
Dim iData As IDataObject = Clipboard.GetDataObject()
' Determines whether the data is in a format you can use.
If iData.GetDataPresent(DataFormats.Bitmap) Then
obj = iData.GetData(DataFormats.Bitmap)
ev.Graphics.DrawImage(obj, _
obj.GetBounds(System.Drawing.GraphicsUnit.Pixel)) 'ev.Graphics.VisibleClipBounds)
End If
ev.HasMorePages = False
End Sub

Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
'Printscreen
SendKeys.SendWait("%{PRTSC}")
' Assumes the default printer.
Dim pd As New PrintDocument()
AddHandler pd.PrintPage, AddressOf Me.pd_PrintPage
pd.DefaultPageSettings.Landscape = True
pd.Print()
Catch ex As Exception
MessageBox.Show("An error occurred while printing" & vbCrLf & _
ex.ToString(), "Error")
End Try
End Sub

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧