如何在套打指定位置打印一个位图图片(图片为一个文件)

eaglesoftware 2000-08-22 12:09:00
1、OLE 嵌入Mspaint.exe
2、生成图片存入一位图文件
3、将图片打印在套打纸指定位置
有办法吗?
...全文
614 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
amstar 2000-10-28
  • 打赏
  • 举报
回复
怎麼用?有實例嗎?email:amstar@netease.com
i 2000-10-23
  • 打赏
  • 举报
回复
看看这个软件
http://go18.163.com/_NTES/~wxcheng/idiotprint/myprint.html
该表格打印部件提供一个“回调”事件,实际上是在打印每个页面时,询问应用程序,是否定制附加的打印内容,可以在该事件中,让部件打印图片、文字、画园、划线等操作,非常适合再报表任意位置打印公司图标之类的工作。
i 2000-10-23
  • 打赏
  • 举报
回复
看看这个软件
http://go18.163.com/_NTES/~wxcheng/idiotprint/myprint.html
该表格打印部件提供一个“回调”事件,实际上是在打印每个页面时,询问应用程序,是否定制附加的打印内容,可以在该事件中,让部件打印图片、文字、画园、划线等操作,非常适合再报表任意位置打印公司图标之类的工作。
eaglesoftware 2000-10-20
  • 打赏
  • 举报
回复
datareport用起来有点烦, 还是用Paintpicture方法方便。
自已控制总灵活。
amstar 2000-10-06
  • 打赏
  • 举报
回复
我還有個問題:
在VB6.0的data report 中怎樣控制像crystall report一樣的在打印時選擇條件??因為
我要打印的只是當前的一條記錄.


amstar
2000/10/6
playyuer 2000-08-22
  • 打赏
  • 举报
回复
sfcyyc 忘了设一个 DataReport.DataSource:
Private DataReport_Initialize()
Dim adoRecordset As New ADODB.Recordset
adoRecordset.Fields.Append "X", adVariant
adoRecordset.Open
Set Me.DataSource = adoRecordset
Dim adoRecordset As New ADODB.Recordset
adoRecordset.Fields.Append "X", adVariant
adoRecordset.Open
Set Me.DataSource = adoRecordset
....
'指定位置:
Dim X As Long
Dim Y As Long
Me.Sections.Item("Section2").Controls.Item("Image1").Left = X
Me.Sections.Item("Section2").Controls.Item("Image1").Top = Y



End sub


参阅:
于溪玥(PlayYuer) 2000/02/01 贴:
《巧用 VB6 之 Data Report 实现图片(Picture)、图表(MsChart)的打印及预览》

VB 6.0 专业版和企业版中的数据报表设计器 (Data Report Designer) 是用来实现打
印数据库数据的有力工具。在通常状况下, DataReport 的数据源(DataSource)应该是由数
据库(DataBase)的基本表(Table)、视图(View)或查询(Query)等生成的,更确切的说该数据
源应是一个 ADODB.Recordset (二维表),而且 ADO 允许生成并打开任意无数据库实体的记
录集。这样就可以为 DataReport 随便设置一个数据源,用其实现实现图片打印的预览。

首先,新建"标准 Exe"工程,再为工程添加 "Data Report" 。设置"工程属性"的启动对
象为 "DataReport"。先使 DataReport "显示报表标头/注脚"(右鼠键快捷菜单),再绘制一
个 RptImage 控件到"报表标头"区域。然后,就可以编写程序代码了:

Private DataReport_Initialize()
'创建并打开一个任意的记录集,并将其设置为 DataReport 的数据源
Dim adoRecordset As New ADODB.Recordset
adoRecordset.Fields.Append "X", adVariant
adoRecordset.Open
Set Me.DataSource = adoRecordset
Dim adoRecordset As New ADODB.Recordset
adoRecordset.Fields.Append "X", adVariant
adoRecordset.Open

Set Me.DataSource = adoRecordset

Const ErrorX = 400 '打印机横向误差
Const ErrorY = 400 '打印机纵向误差

Me.ReportWidth = Printer.Width - Me.LeftMargin - Me.RightMargin - ErrorX
Me.Sections.Item("Section1").Height = 0
Me.Sections.Item("Section3").Height = 0

Me.Sections.Item("Section2").Controls.Item("Image1").PictureAlignment = rptPACenter
Me.Sections.Item("Section2").Controls.Item("Image1").SizeMode = rptSizeClip
Me.Sections.Item("Section2").Controls.Item("Image1").Left = 0
Me.Sections.Item("Section2").Controls.Item("Image1").Top = 0

Me.Sections.Item("Section2").Height = Printer.Height - Me.TopMargin - Me.BottomMargin - ErrorY
Me.Sections.Item("Section2").Controls.Item("Image1").Width = Me.ReportWidth
Me.Sections.Item("Section2").Controls.Item("Image1").Height = Me.Sections.Item("Section2").Height

Dim x As Picture
Select Case i
Case 1 '打印 MsChart。MsChart 本身并没有提供 Print 或 PaintPicture 方法
FormX.MSChartX.EditCopy 'MsChart 可绘制在某窗体 FormX 上
Set x = Clipboard.GetData()
Case 2 '打印图片文件(Image、Picture)
Set x = LoadPicture("..\..\xxx.bmp") '图片文件(*.jpg ...)路径
End Select
Set Me.Sections.Item("Section2").Controls.Item("Image1").Picture = x
End Sub

该方案比使用 "Object.PaintPicture ... " 的方法打印多了预览的功能,而且还可以
通过 RptImage 控件的 PictureAlignment 属性控制图像在纸张上的位置,通过 SizeMode
属性控制图像的拉伸,优点是不言而喻的。

--茶-- 2000-08-22
  • 打赏
  • 举报
回复
首先在报表生成器的适当位置添加一个RptImage控件,名称为image1,然后在程序中调用如下代码将任意位图文件加载到RptImage所在的位置,
Set RptChk2.Sections.Item("section1").Controls.Item("image1").Picture = LoadPicture(picPath)
(其中picPath为图片文件的路径名称。)
然后调用Show方法可以预览报表。(VB6,NT4.0通过)
amstar 2000-08-22
  • 打赏
  • 举报
回复
我也在找这方面的资料,我想用OLE存图片或用字段存图片位置,但打印怎么办???我用VB6。0

7,759

社区成员

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

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