vb的打印问题,printer问题

bachelor 2000-12-11 04:59:00
用vb的PRINTER控制CURRENTX和CURRENTY我曾经做了一个从控件到报表的动态打印,可以灵活的套打任何数据(不一定是记录集),可以动态的选择要打的字段和记录数(从x-y,x、y不定),还可以灵活的进行打印设置和打印预览,但还有几个技术性问题没有解决,如果大家有好意见的话,我再改改,可以介绍给大家。
问题1:vb中如何设置打印机的纸张大小
问题2:打印预览中怎样实现放大,缩小而不变形(我只能显示100%的情形)
问题3:打印预览太大时,怎样设置滚动条(打印预览用的是在picbox控件显示)。
...全文
483 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wbdx 2001-07-03
  • 打赏
  • 举报
回复
我有一个现成的组件,你们试一试
http://wbdx.top263.net/DownLoad/Test.exe
everyask 2001-07-03
  • 打赏
  • 举报
回复
哇,去年的问题现在又拿出来了!
问题1、2、3都有很简单的解决方法。
用VB做打印及预览的效果还是不错的,而且写起来要比VC容易。
y1g1y1 2001-07-03
  • 打赏
  • 举报
回复
你对 Printer 对像编程的话,用我这个控件真的再好不过了!
http://ygyuan.go.163.com/
http://www.ylw.com.cn/yf/printview/printview.htm
l_you 2001-07-03
  • 打赏
  • 举报
回复
czw1975(塞饭) 所说的问题,只能通过设备环境来处理了。
即把一DC放缩后,送到打印机即可。
czw1975 2001-01-12
  • 打赏
  • 举报
回复
我又有一个问题,就是如何实现在打印机上实现放大,缩小而不变形,我以前使用带参数的过程,加一个single参数,如 pre,过程中统一乘以此参数,如 printer.currentX=某值*pre ,象画线、画表格不成问题,但字体用 printer.fontsize=某值*pre 的变化就没那么平滑,不知那位能够解决?对了 printer 好象有 zoom 属性,但我的打印机好象实现不了。
bachelor 2000-12-28
  • 打赏
  • 举报
回复
还有好意见吗?
Anth 2000-12-26
  • 打赏
  • 举报
回复
首先判断系统打印机是否可以自定义纸张大小(控制面板-->打印机-->属性-->纸张),如果可以,则首先将Papersize定义为Customize,然后随着报表大小调整打印机的纸张大小(height,width),
l_you 2000-12-21
  • 打赏
  • 举报
回复
你可查看 [打印机] 文件夹里的打印机属性页。如有自定义纸张的打印机,则可用printer.papersize 。(一般针打机都有。分摸的一般都没有。)
上面是对WIN95/98/NT4而论的。
WIN2000里则必须在打印服务里添加某一大小纸张的服务。
xzh1980 2000-12-21
  • 打赏
  • 举报
回复
我有问题,如果有commonDialog设置怎么把设置好的值传给printer对象?
bachelor 2000-12-21
  • 打赏
  • 举报
回复
谢谢各位,还有好意见吗?
czh918 2000-12-14
  • 打赏
  • 举报
回复
printer.papersize 有的打印机可以设置,有的打印机不能设
用commonDiaglog可以手式设
另用滚动条它定位picturebox的坐标就可

godanddog 2000-12-14
  • 打赏
  • 举报
回复
我没法做到Word的效果!
问题1:用commonDiaglog试一下,我未曾试过
问题2:一年前我就想知道答案(我用的是拉长、拉宽PicBox)
Private Sub mnu150_Click()
picZoom.Left = 0
picZoom.Top = 0
picZoom.Width = picReport.Width * 3 / 2
picZoom.height = picReport.height * 3 / 2

picZoom.PaintPicture picReport.Image, 0, 0, picZoom.Width, picZoom.height _
, 0, 0, picReport.Width, picReport.height

picZoom.Visible = True
picReport.Visible = False

mnu150.Enabled = False
End Sub

问题3:我是将Picbox 封装在另一个容器中,使用H(V)ScrollBar
Private Sub UserControl_Resize()
'镶嵌滚动条
vsl.Width = hsl.height

vsl.Top = 0
vsl.Left = txtScroll.Left
vsl.height = UserControl.ScaleHeight - hsl.height

hsl.Left = 0
hsl.Width = UserControl.ScaleWidth - vsl.Width
hsl.Top = txtScroll.Top

picReport.Width = UserControl.ScaleWidth - vsl.Width
picReport.height = UserControl.ScaleHeight - hsl.height
End Sub

Private Sub hsl_Change()
picReport.Left = -(hsl.Value - hsl.Min)
End Sub

Private Sub vsl_Change()
picReport.Top = -(vsl.Value - vsl.Min)
End Sub
再详细篇幅不够了,见谅
bachelor 2000-12-13
  • 打赏
  • 举报
回复
我想做的与word差不多,有谁知道!
bachelor 2000-12-11
  • 打赏
  • 举报
回复
to Gansen:
您所说的属性vb提示为只读,不可以修改呀!
Gansen 2000-12-11
  • 打赏
  • 举报
回复
设置打印机的纸张大小
printer.papersize

或者是printer 的height and width

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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