如何使打印的图像位置靠右?

klj123 2009-01-04 07:34:13
用 Printer.PaintPicture Picture1.Image方法打印出的图片总是有点靠近纸张的左边,如何使它居中或靠右?
...全文
416 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xrongzhen 2009-01-05
  • 打赏
  • 举报
回复

Private Sub Form_Load()

Form1.AutoRedraw = True
Picture1.AutoRedraw = True
Picture2.AutoRedraw = True
Form11.ScaleMode = 3
Me.Picture1.ScaleMode = 3
Me.Picture2.ScaleMode = 3

Set Picture2.Picture = LoadPicture("D:\cac0b9f70939f87f.jpg") 'Picture2要加载图片
End Sub
'这里图形源指Picture2,
Private Sub Command2_Click()
Me.Picture1.PaintPicture Me.Picture2.Picture, _ '图形源,这里是图形框Picture2;
(Picture1.ScaleWidth - Picture2.ScaleWidth) / 2, _ '所要绘制的图形在Picture1区域中的起点,X坐标
(Picture1.ScaleHeight - Picture2.ScaleHeight) / 2, _ 'Y坐标。这两个坐标都是相对于Picture1左上角的起始点
Picture2.ScaleWidth, Picture2.ScaleHeight, _ '要绘制的图形的大小,这里是按原图形源大小,可以自己设
0, 0, _ '要裁剪的图形的起始坐标,默认值为0,0。可以自己设,也是相对坐标。在此相对Picture2的左上角起始点。
Picture2.ScaleWidth, Picture2.ScaleHeightEnd Sub '要裁剪的图片的大小,就是你想在Picture2中裁出多大的图片
'与上句一样,只是上面分开写了
'Me.Picture1.PaintPicture Me.Picture2.Picture, (Picture1.ScaleWidth - Picture2.ScaleWidth) / 2, (Picture1.ScaleHeight - Picture2.ScaleHeight) / 2, Picture2.ScaleWidth, Picture2.ScaleHeight, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight


'这里没对图片大小与图形框的判断,即图形框的大小小于图片大小的情况,自己加上就是
noenoughmemory 2009-01-05
  • 打赏
  • 举报
回复
不懂,帮顶
noenoughmemory 2009-01-05
  • 打赏
  • 举报
回复
友情up
noenoughmemory 2009-01-05
  • 打赏
  • 举报
回复
不懂,帮顶
zdingyun 2009-01-05
  • 打赏
  • 举报
回复
Private Sub Command1_Click() '打印图片
Printer.PaintPicture Picture1.Image, 1000, 1000
Printer.EndDoc
End Sub
noenoughmemory 2009-01-04
  • 打赏
  • 举报
回复
ding
zdingyun 2009-01-04
  • 打赏
  • 举报
回复
LZ:请看下MSDN的解释,特别是红色文字部分:
PaintPicture 方法
用以在 Form, PictureBox 或 Printer 上绘制图形文件(.bmp、.wmf、.emf、.cur、.ico或 .dib)的内容。不支持命名参数。
语法
object.PaintPicture picture, x1, y1, width1, height1, x2, y2, width2, height2, opcode
PaintPicture 方法的语法包含下列部分:
部分 描述
object 可选的。一个对象表达式,其值为“应用于”列表中的一个对象。如果省略 object,带有焦点的 Form 对象缺省为 object。
Picture 必需的。要绘制到 object 上的图形源。Form 或 PictureBox 必须是 Picture 属性。
x1, y1 必需的。均为单精度值,指定在 object 上绘制 picture 的目标坐标(x-轴和y-轴)。object 的 ScaleMode 属性决定使用的度量单位。
Width1 可选的。单精度值,指示 picture 的目标宽度。object 的 ScaleMode 属性决定使用的度量单位。如果目标宽度比源宽度 (width2) 大或小,将适当地拉伸或压缩 picture。如果该参数省略,则使用源宽度。
Height1 可选的。 单精度值,指示 picture 的目标高度。object 的 ScaleMode 属性决定使用的度量单位。如果目标高度比源高度 (height2) 大或小,将适当地拉伸或压缩 picture。如果该参数省略,则使用源高度。
x2, y2 可选的。均为单精度值,指示 picture 内剪贴区的坐标(x-轴和y-轴)。object 的 ScaleMode 属性决定使用的度量单位。如果该参数省略,则缺省为 0。
Width2 可选的。单精度值,指示 picture 内剪贴区的源宽度。object 的 ScaleMode 属性决定使用的度量单位。如果该参数省略,则使用整个源宽度。
Height2 可选的。 单精度值,指示 picture 内剪贴区的源高度。object 的 ScaleMode 属性决定使用的度量单位。如果该参数省略,则使用整个源高度。
Opcode 可选的。是长型值或仅由位图使用的代码。它用来定义在将 pictur 绘制到 object 上时对 picture 执行的位操作(例如, vbMergeCopy 或 vbSrcAnd 操作符)。关于位操作符常数的完整列表,请参阅 Visual Basic Help 文件中的 RasterOp Constants 主题。
在使用opcode时有一些限制。例如,如果资源是图标或图元文件,则只能使用 vbSrcCopy,而不能使用其他的opcode;并且,与图案 (或 SDK 术语中的"画笔"),如 MERGECOPY、 PATCOPY、 PATPAINT 和 PATINVERT,相交互的opcode实际上是同目标的 FillStyle 属性交互。

808

社区成员

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

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