社区
VB基础类
帖子详情
如果编写打印程序
turing600
2003-08-18 09:07:36
编写一个很简单的打印发票的程序,连接的是针式打印机,如何写代码?求救啊
...全文
66
8
打赏
收藏
如果编写打印程序
编写一个很简单的打印发票的程序,连接的是针式打印机,如何写代码?求救啊
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
td427
2003-08-19
打赏
举报
回复
直接使用PRINTER,灵活、方便,功能强大。
ksmark
2003-08-19
打赏
举报
回复
支持HongGen
lihonggen0
2003-08-19
打赏
举报
回复
用printer对象打印表格
用msflexgrid控件显示的表格,要将它打印出来,最简单的方法是用printform方法,然而这只适合于数据正好能被屏幕显示的,即数据量少的,而且这种打印效果很差。而用printer对象进行打印编程,虽然麻烦点,但效果却是相当不错的,你可以自定义打印格式,打印页数,表格的粗细,字体大小等。实际上用printer对象进行打印编程是比较简单的。
下面我就用一实例来说明:
打印的内容是一张数据表,这里就只有两列数据,包括标题,副标题。(用A4纸打印)
假设数据处在C_DataArray(),和R_DataArray()中C_Name与R_Name分别为两数据项的字段名
Public Sub Printtable()
'初始化
Dim printer1 as Printer
Dim pageheader
Dim pagefooter
Dim pageleft
Dim pageright
Dim usewidth
Dim useheight
Dim i, j, k As Integer
Dim word As String
Dim startx
Dim starty
Dim startyline ‘ 用来纪录打印竖线的起点
Dim endyline ’ 用来纪录打印竖线的末点
设置页面参数
pageheader = 25
pagefooter = 25
pageleft = 20
pageright = 20
With printer1
.PaperSize = 9
.ScaleMode = 6
.FontBold = True
.ScaleLeft = -20
.ScaleTop = -25
.ScaleWidth = 210 '设置为A4纸
.ScaleHeight = 297
usewidth = .ScaleWidth - 40
useheight = .ScaleHeight - 50
.CurrentX = 0
.CurrentY = 0
.DrawWidth = 5
End With
'打印标题
With printer1
.FontSize = 20
.CurrentX = (usewidth - .TextWidth(DataTitle)) / 2
.CurrentY = pageheader + .ScaleTop
End With
printer1.Print DataTitle
'打印副标题
printer1.FontSize = 15
word = DataTitle2
printer1.CurrentX = usewidth - printer1.TextWidth(word)
printer1.Print word
'打印第一条线 Line方法不能用在with ....end with里
printer1.CurrentX = pageleft + printer1.ScaleLeft
startyline = printer1.CurrentY
'线宽
printer1.Line -((printer1.ScaleLeft + printer1.ScaleWidth - pageleft), printer1.CurrentY)
printer1.FontSize = 10
'printer1.Print vbLf
printer1.CurrentY = printer1.CurrentY + 1
'打印第一个字段名
starty = printer1.CurrentY
printer1.CurrentX = ((printer1.ScaleWidth - 40) / 2 - printer1.TextWidth(C_Name)) / 2
printer1.Print C_Name
'打印第二个字段名
printer1.CurrentX = usewidth / 2 + ((usewidth / 2 - printer1.TextWidth(R_Name)) / 2)
printer1.CurrentY = starty
printer1.Print R_Name
printer1.CurrentY = printer1.CurrentY + 1
'打印数据和横线,rownum为数据行数
For i = 1 To rownum
'判断是否该页已打满
If printer1.CurrentY >= useheight Then
'打印横线
printer1.CurrentX = printer1.ScaleLeft + pageleft
printer1.Line -((printer1.ScaleLeft + printer1.ScaleWidth - pageleft), printer1.CurrentY)
printer1.CurrentY = printer1.CurrentY + 1
'打印三条竖线
endyline = printer1.CurrentY
printer1.Line (0, startyline)-(0, endyline)
printer1.Line (usewidth / 2, startyline)-(usewidth / 2, endyline)
printer1.Line (usewidth, startyline)-(usewidth, endyline)
'打印页号
With printer1
.CurrentX = (.ScaleWidth - .TextWidth(.Page)) / 2 - pageleft
.CurrentY = useheight + 3
End With
printer1.Print printer1.Page
printer1.NewPage
With printer1
.CurrentX = pageleft + .ScaleLeft
.CurrentY = pageheader + .ScaleTop
startyline = .CurrentY
End With
End If
'打印一行数据
printer1.CurrentX = ((printer1.ScaleWidth - 40) / 2 - printer1.TextWidth(C_DataArray(i))) / 2
starty = printer1.CurrentY
printer1.Print C_DataArray(i)
printer1.CurrentX = (printer1.ScaleWidth - 40) / 2 + ((printer1.ScaleWidth - 40) / 2 - printer1.TextWidth(R_DataArray(i) )) / 2
printer1.CurrentY = starty
printer1.Print R_DataArray(i)
printer1.CurrentY = printer1.CurrentY + 1
Next i
'打印最后一条横线
printer1.CurrentX = printer1.ScaleLeft + pageleft
printer1.Line -((printer1.ScaleLeft + printer1.ScaleWidth - pageleft), printer1.CurrentY)
endyline = printer1.CurrentY
'打印三条竖线
printer1.Line (0, startyline)-(0, endyline)
printer1.Line (usewidth / 2, startyline)-(usewidth / 2, endyline)
printer1.Line (usewidth, startyline)-(usewidth, endyline)
'打印页号
With printer1
.CurrentX = (.ScaleWidth - .TextWidth(.Page)) / 2 - pageleft
.CurrentY = useheight + 3
End With
printer1.Print printer1.Page
printer1.EndDoc
end sub
射天狼
2003-08-19
打赏
举报
回复
如果PRINTER用的熟练的话,什么样的打印都可以打印,我用PTINTER做过打印数据库中的数据,可以改变纸型,横纵向,预览比例,分页处理等。
如果只打印简单的票据的话,用PTINTER非常方便。
lihonggen0
2003-08-19
打赏
举报
回复
先看看这个:
http://www.dapha.net/down/show.asp?classid=1&Nclassid=140
qhdzh
2003-08-18
打赏
举报
回复
Printer.Font = "宋体"
Printer.FontBold = True
Printer.FontSize = 10
With Printer
.CurrentX = 1800
.CurrentY = 1150
End With
Printer.Print Text1.Text
With Printer
.CurrentX = 4500
.CurrentY = 1150
End With
Printer.Print Text2.Text
Printer.EndDoc
since1990
2003-08-18
打赏
举报
回复
帮你 up
落伍者
2003-08-18
打赏
举报
回复
用printer对象,看msdn的例子
编写
程序
打印
如下图形_C
程序
打印
如下设计
编写
程序
打印
如下图形 #include<stdio.h> #include<conio.h> void main() { int i,j,k,n; clrscr(); //to clear the screen printf(“How many lines?”); scanf(“%d”,&n); n*=2; for(i=0;i<n;i+=2)...
使用 MFC
编写
打印
程序
使用 MFC
编写
打印
程序
作者:戎亚新 南京航空航天大学仿真与控制实验室 下载源代码 摘要 本文首先介绍了利用MFC提供的文档视图框架来实现一个
打印
程序
,实现
打印
预览,在此基础上,同时通过对MFC源代码的深入探讨,提出了利用该方法在对话框上用MFC实现
打印
功能,结果表明,利用MFC实现
打印
不仅方便,而且功能很强大,能够根据不同的需求很方便的
打印
出所需要的格式。本文还
VC中
编写
打印
程序
打印
程序
的
编写
在windows
程序
设计中非常有用,针对不同的用户需要,通常用sdk方式实现
打印
代码量比较大,而且要对
打印
流程的底层有非常清楚的了解,需要一个
程序
员有非常深入的
打印
方面的知识,利用MFC提供的文档视图结构,不但可以实现一些常用的标准界面元素,把数据的处理的界面的处理分离出来,而且其提供的
打印
功能更是方便快捷,功能强大。
打印
程序
的
编写
本质是是一种GDI绘图,只是绘图的对象是在
打印
java
打印
输出图形_
编写
程序
打印
以下图形菱形,java代码输出菱形图案
你知道用java
编写
程序
打印
输出一个菱形图案应该如何实现吗?下面要带来的一个编程题目就是和这个相关的内容,那么,话不多说,一起来和小编具体的来看一下题目,以及相关解题思路和代码实现吧。一、题目现有以下的图案(菱形)需要你
打印
出下面的图案(菱形)那么对于这样的图案(菱形),我们应该怎样来实现呢?实现的方式是怎样的?下面一起来看一下,这道题目的解题思路吧。以下是具体的解题思路。二、思路首先,我们要先观...
C语言
编写
一个
程序
,
打印
下面的图案,要求使用嵌套循环
C语言
编写
一个
程序
,
打印
下面的图案,要求使用嵌套循环
VB基础类
7,763
社区成员
197,609
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章