如何用VB6.0实现打印预览

如何用VB6.0实现打印预览,第1张

我最近刚刚实现了这个。是基于Excel的。

'********************************

' 该模块用来实现各种打印功能

'********************************

'打印到excel中

Public Function print2Excel() As Boolean

' On Error GoTo Print2Excel_Error

Dim xlApp As Excel.Application

Dim i, j ,colums As Integer

Dim startRow, startCol As Integer

Dim tmp() As Variant

startRow = 1

startCol = 1

colums =10

Set xlApp = New Excel.Application '注意之前,要在工程-》引用中将支持excel的控件加载进来

Set xlApp = CreateObject("Excel.Application") '激活EXCEL应用程序

xlApp.Visible = False '隐藏或显示EXCEL应用程序窗口

xlApp.SheetsInNewWorkbook = 1 '打开工作簿,strDestination为一个EXCEL报表文件

Set xlBook = xlApp.Workbooks.Add '打开工作簿,strDestination为一个EXCEL报表文件

Set xlSheet = xlBook.Worksheets(1)

xlSheet.PageSetup.Orientation = g_Print_Method

'设置打印数据 g_Print_Data是一个Variant的二维数组,这个你要根据自己的情况作修改

For i = LBound(g_Print_Data) To UBound(g_Print_Data)

For j = LBound(g_Print_Title) To colums - 1

'xlSheet.Cells(startRow, i + startCol).Width = Len(CStr(" " &g_Print_Data(i,j) &" "))

、 Next

Next

'页面设置 g_Preview为全局变量,是否要求预览

If g_Preview = True Then

xlApp.Caption = "打印预览" '设置预览窗口的标题

xlApp.Visible = True '隐藏或显示EXCEL应用程序窗口

xlApp.ActiveSheet.PrintPreview

Else

xlSheet.PrintOut '执行打印

End If

xlApp.DisplayAlerts = False

xlApp.Quit '退出EXCEL

xlApp.DisplayAlerts = True

' xlBook.Save '保存文件

print2Excel = True

Exit Function

Print2Excel_Error:

print2Excel = False

End Function

vb的printer好像不能设置打印机...只能用api选择打印机,或者只使用默认

API的话可以用 OpenPrinter

VB声明

Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, pDefault As PRINTER_DEFAULTS) As Long

说明

打开指定的打印机,并获取打印机的句柄

返回值

Long,非零表示成功,零表示失败。会设置GetLastError

参数表

参数 类型及说明

pPrinterName String,要打开的打印机的名字

phPrinter Long,用于装载打印机的句柄

pDefault PRINTER_DEFAULTS,这个结构保存要载入的打印机信息

Type PRINTER_DEFAULTS

pDatatype As String '打印机使用的默认数据类型的名字。可设为vbNullString,表示使用当前的默认配置

pDevMode As Long'打印机默认配置信息的一个地址。可设为零,表示使用当前默认设置

DesiredAccess As Long '一个常规的安全值

End Type

Dim PD As PRINTER_DEFAULTS

Dim phand As Long '用于装载打印机的句柄

Dim pname As String '打印机型号

pname = Printer.DeviceName '获得打印机型号,自己输入也成,不输入好像也可以

f OpenPrinter(pname, phand, PD) <>1 Then '打开指定的打印机,并获取打印机的句柄。

MsgBox "打印机出现连接故障!", vbOKOnly, "错误提示"

Exit Sub

End If

有了句柄,就能用API命令随意控制打印机了。

你有没有添加excel的引用?

在VB工程中添加对Excel类型库的引用

为了能从VB应用程序中访问Excel丰富的内部资源,使Excel应用程序运行得更快,需要在VB工程中添加对Excel类型库的引用。具体步骤如下:

a)从VB5“工程”菜单中选择“引用”;

b) 在“引用”对话框中选择Excel类型库:"Microsoft Excel9.0 Object Library";

c)单击左边小方框,使之出现“√”符号;

d)按“确定”退出。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12036138.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存