VB的打印与链接
- 格式:doc
- 大小:100.00 KB
- 文档页数:13
VB打印功能全代码Private Sub Image5_Click() '打印报表Dim i As IntegerDim pageleft As IntegerDim pageheader As IntegerDim pagefooter As IntegerDim pageright As IntegerDim startx As IntegerDim starty As IntegerDim startline As IntegerDim endline As IntegerDim usewidth As IntegerDim useheight As Integer pageheader = 25pagefooter = 25pageleft = 20pageright = 20'定义纸张类型A4Printer.FontSize = 20Printer.PaperSize = 9Printer.ScaleMode = 6Printer.FontBold = FalsePrinter.ScaleLeft = -20Printer.ScaleTop = -25Printer.ScaleWidth = 210Printer.ScaleHeight = 297 usewidth = Printer.ScaleWidth - 40 useheight = Printer.ScaleHeight - 50Printer.CurrentX = 0Printer.CurrentY = 0Printer.DrawWidth = 2'打印主标题Printer.FontSize = 20Printer.CurrentX = (usewidth - Printer.TextWidth(Me.Text1.Text & "经济情况表")) / 2Printer.CurrentY = Printer.ScaleTopPrinter.Print Me.Text1.Text & "经济情况表"'打印空白行Printer.FontSize = 8Printer.CurrentX = (usewidth - Printer.TextWidth("")) / 2Printer.CurrentY = Printer.CurrentY + 1Printer.Print ""'打印副标题Printer.FontSize = 15Printer.CurrentX = (usewidth - Printer.TextWidth(commonth & "月份经济情况报表")) / 2Printer.CurrentY = Printer.CurrentY + 1Printer.Print commonth & "月份经济情况报表"'打印空白行Printer.FontSize = 8Printer.CurrentX = (usewidth - Printer.TextWidth("")) / 2Printer.CurrentY = Printer.CurrentY + 1Printer.Print ""'打印表的内容'首先打印第一条横线'打印最上边的第一条横线Printer.CurrentX = pageleft + Printer.ScaleLeftstartline = Printer.CurrentY + 1Printer.Line -((Printer.ScaleLeft + Printer.ScaleWidth - pageleft), Printer.CurrentY)Printer.FontSize = 12Printer.CurrentY = Printer.CurrentY + 1starty = Printer.CurrentYPrinter.CurrentX = ((Printer.ScaleWidth - 40) / 3 - Printer.TextWidth("")) / 2Printer.Print ""Printer.FontSize = 12Printer.CurrentX = usewidth / 3 + ((usewidth / 3 - Printer.TextWidth("今年经济情况")) / 2)Printer.CurrentY = startyPrinter.Print "今年经济情况(万元)"Printer.FontSize = 12Printer.CurrentX = (usewidth / 3) * 2 + ((usewidth / 3 - Printer.TextWidth("去年经济情况")) / 2)Printer.CurrentY = startyPrinter.Print "去年经济情况(万元)"Printer.CurrentX = pageleft + Printer.ScaleLeftPrinter.CurrentY = Printer.CurrentY + 1Printer.Line -((Printer.ScaleLeft + Printer.ScaleWidth - pageleft), Printer.CurrentY)Printer.CurrentY = Printer.CurrentY + 1For i = 0 To 10'判断是否该页已打满Me.MSFlexGrid1.Row = iIf Printer.CurrentY >= useheight Then'打印横线Printer.CurrentX = Printer.ScaleLeft + pageleftPrinter.Line -((Printer.ScaleLeft + Printer.ScaleWidth - pageleft), Printer.CurrentY)Printer.CurrentY = Printer.CurrentY + 1'打印四条竖线endline = Printer.CurrentYPrinter.Line (0, startline)-(0, endline)Printer.Line (usewidth / 3, startline)-(usewidth / 3, endline) Printer.Line ((usewidth / 3) * 2, startline)-((usewidth / 3) * 2, endline)Printer.Line (usewidth, startline)-(usewidth, endline)'打印页号Printer.CurrentX = (Printer.ScaleWidth - Printer.TextWidth(Printer.Page)) / 3 - pageleftPrinter.CurrentY = useheight + 3Printer.Print Printer.PagePrinter.NewPage 'NewPage告诉打印机,程序对当前输出页的发送已经结束。
VBA 中的文件打印与打印设置技巧在使用 Visual Basic for Applications(VBA)编程时,我们经常会遇到需要打印文件或设置打印参数的需求。
本文将介绍一些在 VBA 中实现文件打印和打印设置的技巧,帮助你更高效地处理打印任务。
一、文件打印技巧1. 打印当前活动工作簿如果你需要打印当前活动的工作簿,可以使用`ActiveWorkbook.PrintOut`方法。
该方法会直接打印整个工作簿,默认使用默认打印机和设置。
示例代码:```vbaSub PrintActiveSheet()ActiveWorkbook.PrintOutEnd Sub```2. 打印指定工作表如果你只想打印工作簿中的某个特定工作表,可以使用`Worksheets.PrintOut`方法。
该方法允许你指定打印范围、打印份数等参数。
示例代码:```vbaSub PrintSpecificSheet()Worksheets("Sheet1").PrintOut Copies:=2, Collate:=TrueEnd Sub```3. 打印指定区域有时候,你可能只需要打印工作表中的某个特定区域。
在这种情况下,可以使用`Range.PrintOut`方法。
该方法可以打印指定的区域,并允许你设置打印份数、打印方向等参数。
示例代码:```vbaSub PrintSpecificRange()Range("A1:D10").PrintOut Copies:=3, PrintOrientation:=xlLandscapeEnd Sub```二、打印设置技巧1. 设置打印区域通过设置打印区域,你可以控制打印的范围,避免不必要的打印内容。
在VBA 中,我们可以使用`PageSetup.PrintArea`属性来设置打印区域。
示例代码:```vbaSub SetPrintArea()ActiveSheet.PageSetup.PrintArea = "$A$1:$D$10"End Sub```2. 设置打印标题打印标题可以帮助你更好地标识打印的内容。
打印设置打印预览和预览控制器的实例效果图1:效果图2:提示:调试环境为vs2005 + windows2003 / windows2008 / xp / vista 代码如下:Public Class PrintFormDim pageset As Printing.PageSettings = New Printing.PageSettings()Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesButton1.ClickPageSetupDialog1.Document = PrintDocument1 ''设置Document属性=文档对象或者与PageSettings类关联就可以使用该控件PageSetupDialog1.AllowMargins = TruePageSetupDialog1.PageSettings = PrintDocument1.DefaultPageSettingsDim re As DialogResult = PageSetupDialog1.ShowDialog()If re = Windows.Forms.DialogResult.OK Thenpageset = PageSetupDialog1.PageSettingsEnd IfEnd SubPrivate Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e AsSystem.Drawing.Printing.PrintPageEventArgs)Dim mypen As Pen = New Pen(Color.Blue, 2)PrintDocument1.DefaultPageSettings = pagesete.Graphics.DrawString(RichTextBox1.Text, New Font("黑体", 15), mypen.Brush, 10, 10)End SubPrivate Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesButton3.ClickPrintDialog1.Document = PrintDocument1PrintDialog1.PrinterSettings.Copies = 5 ''打印的份数PrintDialog1.PrinterSettings.FromPage = 1 ''第一页的页码PrintDialog1.PrinterSettings.ToPage = 5 ''最后一页页码Dim re As DialogResult = PrintDialog1.ShowDialog()If re = Windows.Forms.DialogResult.OK ThenAddHandler PrintDocument1.PrintPage, AddressOf Me.PrintDocument1_PrintPagePrintDocument1.Print()End IfEnd Sub '更多.net源码和教程,来自[乐博网]Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesButton4.ClickPrintPreviewDialog1.Document = PrintDocument1AddHandler PrintDocument1.PrintPage, AddressOf Me.PrintDocument1_PrintPagePrintPreviewDialog1.PrintPreviewControl.Zoom = 1.0PrintPreviewDialog1.WindowState = FormWindowState.NormalPrintPreviewDialog1.ShowDialog()End SubPrivate Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.ClickDim PrintPreviewControl1 As PrintPreviewControl = New PrintPreviewControl = "PrintPreviewControl1"PrintPreviewControl1.Dock = DockStyle.FillPrintPreviewControl1.Document = PrintDocument1eAntiAlias = TrueAddHandler PrintDocument1.PrintPage, AddressOf Me.PrintDocument1_PrintPageForm1.Controls.Add(PrintPreviewControl1)PrintPreviewControl1.Show()Form1.Show()End SubEnd Class。
VBNET如何实现打印兄弟,下面的代码你可以参考,是......兄弟,下面的代码你可以参考,是鄙人的一个项目摘录,希望能给你提供帮助。
Imports ExcelPublic Class PinholeReportPrivate pnhExcel As Excel.Application ' 针孔报表 EXCEL 对象Private pnhWorkBook As Excel.WorkbookPrivate pnhWorkSheet As Excel.WorksheetPublic PinholeReortExcelFileName As String = Environment.CurrentDirectory & "\针孔报表.XLS"Public ExcelVisible As Boolean = FalsePublic Sub New()pnhExcel = New Excel.Application()pnhExcel.WindowState = Excel.XlWindowState.xlMinimized pnhExcel.Visible = ExcelVisiblepnhWorkBook = pnhExcel.Workbooks.Open(PinholeReortExcelFileName) pnhWorkSheet = pnhWorkBook.Sheets("针孔报表")End SubProtected Overrides Sub Finalize()If Not pnhExcel Is Nothing ThenpnhWorkBook.Close(False)pnhExcel.Quit()pnhWorkSheet = Nothing : pnhWorkBook = Nothing : pnhExcel = NothingEnd IfMyBase.Finalize()End Sub' 针孔报表打印Public Function PinholeReport_Print(ByVal thePinhole As clsGroupPinholeData) As StringDim strError As String = Nothing ' 错误串'====================================== ======================================== TryDim i, j As Integer' 刷新针孔报表pnhWorkSheet.Cells(1, 4) = thePinhole.CoilIDpnhWorkSheet.Cells(2, 4) = thePinhole.WeightpnhWorkSheet.Cells(3, 4) = thePinhole.ThickpnhWorkSheet.Cells(4, 4) = thePinhole.WidthpnhWorkSheet.Cells(5, 4) = thePinhole.DesignedTopCoatWeightpnhWorkSheet.Cells(6, 4) = thePinhole.DesignedBotCoatWeightpnhWorkSheet.Cells(7, 4) = thePinhole.StartTimepnhWorkSheet.Cells(8, 4) = thePinhole.EndTimeFor i = 0 To 49pnhWorkSheet.Cells((i \ 5) + 12, ((i Mod 5) * 2 + 1) + 1) = thePinhole.StartPos(i + 1)pnhWorkSheet.Cells((i \ 5) + 12, ((i Mod 5) * 2 + 2) + 1) = thePinhole.EndPos(i + 1)Next' 报表打印pnhWorkSheet.PrintOut()'pnhWorkSheet.PrintPreview()Catch ex As ExceptionstrError = "针孔报表打印错误!" & vbCrLf & ex.Message & vbCrLf & ex.StackTrace End TryReturn strErrorEnd FunctionEnd Class上面,鄙人使用了一个内部类clsGroupPinholeData以提供数据,当然你必须修改以使用你的Datatable数据。
vb窗体数据写入模版打印窗体数据写入模版打印是一项在VB窗体应用程序中常见的任务。
通过将窗体中的数据写入模版,可以生成符合特定格式和布局要求的打印文件。
本文将介绍如何使用VB窗体实现数据写入模版打印,并探讨该技术的实际应用。
我们需要创建一个VB窗体应用程序,并添加必要的控件和代码。
假设我们的窗体中包含一些文本框和标签控件,用于输入和显示数据。
我们的目标是将这些数据写入到一个预定义的模版中,并将模版打印输出。
在VB窗体应用程序中,可以使用PrintDocument对象来实现打印功能。
首先,我们需要在窗体中添加一个PrintDocument控件,并设置其相关属性,如打印机名称、页面大小和页面边距等。
然后,在代码中编写PrintDocument的PrintPage事件处理程序,用于绘制打印页面的内容。
在PrintPage事件处理程序中,我们可以使用Graphics对象的DrawString方法来绘制文本。
可以根据需要设置文本的字体、大小、颜色和位置等属性。
此外,还可以使用Graphics对象的其他方法和属性来实现更复杂的绘图效果,如绘制线条、矩形和图形等。
对于数据写入模版的实现,我们可以将模版设计为一个文本文件,其中包含预留的位置用于插入数据。
在PrintPage事件处理程序中,可以读取模版文件的内容,并使用String.Format方法将数据插入到相应的位置。
例如,可以使用{0}、{1}等占位符表示数据应插入的位置,然后使用String.Format方法将实际数据替换占位符。
除了基本的数据插入功能,还可以根据实际需求扩展模版的功能。
例如,可以设计模版包含表格、图表或其他复杂的布局。
在PrintPage事件处理程序中,可以根据模版的结构和布局来绘制相应的内容。
在实际应用中,窗体数据写入模版打印可以应用于各种场景。
例如,可以使用该技术生成报告、发票、合同等文档。
通过将数据写入模版,可以确保生成的文档符合特定的格式和布局要求,提高文档的可读性和专业性。
vb 打印实例-概述说明以及解释1.引言1.1 概述在VB中,打印是一项常见的功能需求,通过打印可以将软件中的数据输出到纸张上,使得用户能够方便地查看和保存信息。
本文将介绍VB 中的打印功能,并通过实例演示和分析来帮助读者更好地理解和应用这一功能。
在VB中,打印功能的实现主要通过使用PrintDocument组件来完成,PrintDocument组件可以方便地控制打印输出的内容和样式。
通过设置PrintDocument的PageSettings属性和PrintPage事件来指定打印页面的设置和内容。
另外,也可以使用PrintPreviewDialog组件来提供打印预览的功能,使得用户可以在打印前预览输出的效果,从而调整需要打印的内容和格式。
本文将通过实例演示和分析来介绍如何在VB中实现打印功能,希望能帮助读者更加深入地了解和掌握这一重要的功能。
文章结构部分主要包括文章的大致组织和内容安排,旨在帮助读者更好地理解整篇文章的逻辑结构。
本文的文章结构如下:1. 引言1.1 概述:介绍VB打印功能的重要性和应用背景1.2 文章结构:介绍本文的大纲和各部分内容安排1.3 目的:阐明撰写本文的意义和目的2. 正文2.1 VB打印功能介绍:详细介绍VB语言中的打印功能的基本原理和特点2.2 VB打印实例演示:通过具体的实例演示,展示VB打印功能的具体应用和使用方法2.3 VB打印实例分析:对演示的实例进行分析和总结,深入探讨其应用场景和优势特点3. 结论3.1 总结:对整篇文章进行总结,强调VB打印功能的重要性和价值3.2 应用推广:探讨VB打印功能在实际应用中的推广和发展前景3.3 展望:展望未来VB打印功能的发展方向和潜力通过以上结构,读者可以清晰地了解本文的逻辑结构和内容安排,有助于他们更好地理解和消化文章所传达的信息。
1.3 目的:本文的目的在于介绍如何在VB(Visual Basic)中使用打印功能,并通过实例演示和分析,帮助读者更好地了解如何在自己的程序中实现打印功能。
VB的几种打印方法王英红【期刊名称】《电脑采购》【年(卷),期】2001(000)017【摘要】<正> 1.采用Visual Basic提供的简单打印函数PrintForm方法。
应用程序窗体的PrintForm方法时,Visual Basic把窗体的位图送到当前打印机。
该方法的优点在于它几乎不需要任何编程,但也有很大缺陷。
下面代码将在打印机上打印窗体。
Private Sub Commandl_Click()'用PrintForm打印Me.PrintForm'打印窗体的可见区域 End Sub 2.用Printer对象进行高分辨率输出。
但要想产生复杂的打印输出,编程较为烦琐。
Printer对象代表系统缺省的打印机,Printer对象支持许多由窗体和图形框所支持的属性和方法,三种对象都有画线和画方框。
应用程序可用以下代码在Printer对象上画出一平方英寸的方框。
它离左上角二英寸。
注意:打印机以twips来测量距离。
每英寸有1440个twips。
Printer.Line(2*1440,2*1440)-Step(1440,1440),B打印机、从窗体和图形框都有【总页数】1页(P15-15)【作者】王英红【作者单位】【正文语种】中文【中图分类】F764.6【相关文献】1.基于VB/Excel的数据报表生成及打印功能实现方法 [J], 杨晓春;丁一2.用Excel统计完学生考试成绩后,许多教师一般是用编写VBA程序或录制宏的办法来给每位学生打印成绩条,但非常麻烦,能用简单的方法打印吗? [J], 吕维智3.用.NET和VBA实现表单动态打印管理的方法 [J], 王象刚;李金凤4.WinCC中基于C-Script和VBS的搜索打印方法 [J], 周杰;潘宏侠5.PC-PR201DC打印机的几种特殊打印控制方法 [J], 谢丁丁因版权原因,仅展示原文概要,查看原文内容请购买。
VB环境下打印机的控制VB提供了两种方式的打印控制。
一种是通过打印机驱动程序,以页为基本打印单位,实现高精度打印字符、图形、图像、表格等。
另一种是直接向打印机发送数据,以行为单位实现高速字符打印,此法还能通过发送控制指令对打印机实现完全的控制。
一、通过驱动程序控制打印这是最常用的方式,因为与打印机无关,所以适应于任何类型的打印机。
㈠使用Printer对象Printer对象是一个独立于打印机设备的封装,它可以代表不同的打印机,初始时,Printer对象为系统缺省的打印机,Printer对象具备例如:ColorMode、Copies、Duplex、Printquality等控制打印机特征的属性,提供了Newpage、EndDoc、KillDoc等控制打印过程的方法,以及大多数由窗体和图片框控件提供的图形属性和方法如:Currentx、Currenty、Textwidth、Textheight、Print、Pset、Line、PaintPicture和Circle等方法,它还拥有Font的所有属性。
实现高分辨率的打印就是通过控制Printer对象的上述属性和方法完成的。
1.打印机的设置若系统有多个打印机驱动,如果打印时没指定打印机,则选默认打印机。
如果要用非默认打印机,可用Set Printer=Printers(N)来实现。
2.打印纸张的定义纸张的大小用Printer的PaperSize属性,但设置的纸张必须打印机支持,故最好设普遍使用的纸张,如A4等。
纸张的方向用Printer的Orientation属性, 0为横向,1为纵向。
纸张尺寸的计量单位用Printer的ScaleMode属性来设置。
下面的代码就是将纸张设为A4纵向、以毫米为计量单位。
Printer.PaperSize = vbPRPSA4Printer.Orientation = 1Printer.ScaleMode = vbMillimeters3.分页控制Printer对象进以页为基本单位,分页控制可用Printer 对象的NewPage(打印新的一页,CurrentX、CurrentY置为新页的左上角,可完成多页功能。
VB的几种打印方法我们编程时,如果在程序中加入“打印”功能会使程序更加完善,更加专业。
下面,我提供几种编写打印程序的方法以供大家参考。
1. 采用Visual Basic提供的简单打印函数PrintForm方法应用程序窗体的PrintForm方法时Visual Basic把当前窗体的位图送到打印机。
该方法的优点在于它几乎不需要任何编程但也有很大缺陷。
最为突出的是当低分辨率图形在高分辨率打印机上打印时其结果令人无法满意会产生锯齿。
代码如下:Private Sub Command1_Click '用PrintForm打印Me.PrintForm '打印窗体的可见区域End Sub2. 用Printer对象要想产生复杂的打印输出编程较为烦琐。
Printer对象代表系统缺省的打印机Printer对象支持许多由窗体和图形框所支持的属性和方法三种对象都有画线和画方框。
应用程序可用以下代码在Printer对象上画出1平方英寸的方框。
注意打印机以twips来测量距离。
每英寸有1440个twips。
Printer.Line2144021440-Step14401440 B打印机、从窗体和图形框都有Circle、PaintPicture、Print、Pset、TextHeight、TextWidth方法。
使用这些方法应用程序可以为打印机生成高分辨率输出。
打印文本直接用Print方法,见下列代码:Printer.Print "Hello China ComputerWorld" '打印字符串Printer对象还有一些窗体和图形框都没有方法NewPage告诉打印机程序对当前输出页的发送已经结束Printer对象应开始新的一页。
EndDoc告诉VB程序创建文档结束VB应将它发送到物理打印机上打印。
KillDoc取消当前打印作业。
应用程序应该终止由EndDoc和KillDoc所设定的每个打印作业。
用VB实现多文档打印VB-电脑资料用 VB 实现多文档打印作者:盛放通常,一般情况下,我们打印文档都是直接从应用程序中打印,例如WORD,这个方法对于单个文件打印比较方便,但是对于文秘等经常需要打印大批量文件的工作人员,如果仍然用WORD一个一个进行打印就比较麻烦了,。
应我公司文管用VB实现多文档打印作者:盛放通常,一般情况下,我们打印文档都是直接从应用程序中打印,例如WORD,这个方法对于单个文件打印比较方便,但是对于文秘等经常需要打印大批量文件的工作人员,如果仍然用WORD一个一个进行打印就比较麻烦了。
应我公司文管中心的要求,我制作了一个多文档打印程序,方便了文秘人员,现介绍如下:运行VB,新建一个应用程序工程,在Form中添加一个DriveListBox 控件、DirListBox 控件和FileListBox 控件,分别取名为:Drive1、Dir1和File1。
设置File1的Pattern 属性为*.doc,设置FileListBox 控件中显示的文件名为DOC文档。
在Form_Load()事件中添加一行代码:Drive1.Drive = "c:",用来设置运行时所选择的驱动器。
在Drive1_Change()事件中添加一行代码:Dir1.Path = Drive1.Drive,这样当驱动器改变时,使目录路径随之改变。
同样在Dir1_Change()事件中添加一行代码:File1.Path = Dir1.Path,当目录改变时,使文件列表同时改变。
因为一般来说,文档都会保存在统一的目录下,所以没有使用CommonDialog 控件进行文件名选择,使操作更为简单方便。
在Form中添加一个CommandButton 控件取名为Print,用来进行打印操作。
在Command1_Click()中添加如下代码:Dim i As IntegerDim strfile As StringDim word As ObjectSet word = CreateObject("word.Basic")word.appshowFor i = 0 To File1.ListCount - 1If Right(Dir1.Path, 1) <> "" Thenstrfile = Dir1.Path + "" + File1.List(i)Elsestrfile = Dir1.Path + File1.List(i)End Ifword.fileopen strfileword.fileprintword.filecloseNextword.appcloseSet word = Nothing代码说明:定义一个对象变量word使用CreateObject创建一个WORD对象并赋值给word以FileListBox 控件的列表部分项目的个数作为最大数进行循环打印判断目录名的最后一个字母是否为“”,如果不是,则添加“”进行修正通过目录名和文件名获得完整的文件名使用word对象的fileopen方法打开文件使用word对象的fileprint方法进行文件打印使用word对象的fileclose方法关闭文件最后调用word对象的appclose方法关闭word程序,以及释放对象资源Set word = Nothing,电脑资料《用VB实现多文档打印VB》(https://www.)。
读取文本文件内容并打印输出Private Sub Command1_Click()Dim TextLine As StringOpen "c:\\testfile.txt" For Input As #1Do While Not EOF(1)Line Input #1, TextLinePrint TextLineLoopClose #1End Sub新建文件并写入文件内容Private Sub Form_Load()Const ForReading = 1, ForWriting = 2Dim fso, fDim SkipLineInFile As StringSet fso = CreateObject("Scripting.FileSystemObject")Set f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, True) f.Write "Hello world!" & vbCrLf & "VB Script is fun!"Set f = fso.OpenTextFile("c:\\testfile.txt", ForReading) SkipLineInFile = f.readallDebug.Print SkipLineInFileEnd Sub冒泡上浮Private Sub Command1_Click()Dim d(1 To 4) As Integerd(1) = Val(Text1.Text)d(2) = Val(Text2.Text)d(3) = Val(Text3.Text)d(4) = Val(Text4.Text)For i = 1 To 3For j = 4 To i + 1 Step -1If d(j) < d(j - 1) Thent = d(j)d(j) = d(j - 1)d(j - 1) = tEnd IfNext jNext iFor i = 1 To 4List1.AddItem d(i)Next iEnd Sub冒泡下沉Dim d(1 To 4) As IntegerPrivate Sub Command1_Click() List1.ClearRandomizeFor i = 1 To 4d(i) = Int(Rnd * 10) + 10List1.AddItem d(i)Next iEnd SubPrivate Sub Command2_Click() '下沉算法,从小到大排序List2.ClearFor i = 1 To 3For j = 1 To 4 - iIf d(j) > d(j + 1) Thenk = d(j)d(j) = d(j + 1)d(j + 1) = kEnd IfNext jNext iFor i = 1 To 4List2.AddItem d(i)Next iEnd Sub选择排序Dim d(1 To 120) As Integer Dim ct As Integer'选择排序Private Sub Command1_Click() ct = 120For i = 1 To ct - 1k = iFor j = i + 1 To ctIf d(j) < d(k) Then k = jNext jIf i <> k Thenkt = d(i): d(i) = d(k): d(k) = ktEnd IfNext iFor i = 1 To ctList2.AddItem Str(d(i))Next ict = 0List1.AddItem ""List2.AddItem ""End Sub'产生递增数Private Sub Command2_Click()Dim dv As IntegerList1.ClearFor i = 1 To 120dv = dv + Fix((Timer() Mod 67 + 13) * Rnd()) + 1d(i) = dvList1.AddItem d(i)Next iEnd SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Thenct = ct + 1d(ct) = Val(Text1.Text)List1.AddItem Str(d(ct))Text1.Text = ""Text1.SetFocusEnd IfEnd Sub'对分查找对数列有要求,必须是有序,对分查找一般只能确定数列是否存在该数'顺序查找不但能确定数列是否存在该数,而且能找出数列存在数的个数,对数列无殊要求,查找效率比对分查找低Private Sub Command5_Click() '过程5:对分查找,必须掌握当前以由小到大数列进行查找Dim key, i, j, m, n As IntegerDim bz As Stringbz = "不存在该数"key = Val(Text1.Text)n = 0i = 1j = 100Do While i <= jn = n + 1 '计数器n用来计数总共查找了多少次m = Fix((i + j) / 2)If d(m) = key Thenbz = "存在该数,在第" + Str(m) + "位" '***Exit DoElseIf d(m) < key Theni = m + 1Elsej = m - 1End IfLoopbz = bz + ",共查找" + Str(n) + "次" '想想看为什么变量bz在此处连接str(n),而不在***处Label1.Caption = bzEnd SubPrivate Sub Command6_Click() '过程6:顺序查找Dim key, m As IntegerDim bz As Stringm = 0bz = "不存在该数"key = Val(Text1.Text)For i = 1 To 100If d(i) = key Thenm = m + 1End IfNext iIf m > 0 Thenbz = "存在该数,总共有" + Str(m) + "个"End IfLabel1.Caption = bzEnd Sub。
vb窗体数据写入模版打印VB窗体数据写入模板打印是一种常见的应用场景,通过将窗体中的数据按照一定的格式写入到打印模板中,可以方便地生成符合需求的打印文件。
下面将介绍如何使用VB窗体实现数据写入模板打印的方法。
我们需要创建一个VB窗体,窗体上放置需要打印的控件,例如文本框、标签等。
在窗体的代码中,我们可以使用VB的数据操作方法,将窗体中的数据获取并处理。
在窗体加载的事件中,我们可以通过控件的属性或方法获取窗体中的数据。
例如,可以使用文本框的Text属性获取文本框中的内容,使用标签的Caption属性获取标签中的文本。
接下来,我们需要创建一个打印模板,模板可以是一个Word文档、Excel表格或其他格式的文件。
模板中可以预先定义好需要填充数据的位置,例如使用特定的标记或占位符表示需要填充的数据位置。
在代码中,我们可以使用VB的文件操作方法打开模板文件,并将窗体中的数据按照需要的格式写入到模板中。
例如,可以使用VB的文件读写方法读取模板文件的内容,并使用字符串替换方法将占位符替换为窗体中的数据。
我们可以使用VB的打印方法将填充好数据的模板文件进行打印。
例如,可以使用VB的打印操作方法将模板文件发送到打印机进行打印。
需要注意的是,在实现数据写入模板打印的过程中,我们需要遵循一些规范和要求。
首先,我们需要确保输出的内容不包含http地址,以避免泄露敏感信息或引起安全问题。
其次,我们需要避免输出公式,以免造成歧义或错误信息。
此外,我们还需要注意内容的整体格式,确保整洁规范,可以使用恰当的段落和标题来组织文章结构,使其易于阅读。
另外,我们应该避免使用图片链接,以免在文章中引起链接失效的问题。
同时,我们还需要避免重复问题的出现,以免降低文章的质量。
最后,我们需要确保文章内容准确严谨,避免歧义或错误信息的出现。
VB窗体数据写入模板打印是一种常见的应用场景,通过将窗体中的数据按照一定的格式写入到打印模板中,可以方便地生成符合需求的打印文件。
打印和打印预览功能今天,我们将制作一个能实现打印和打印预览功能的应用程序。
程序运行结果如图所示。
运行结果技术要点●打印预览功能的实现●打印功能的实现实现过程■新建项目打开Visual ,选择“新建项目”,在项目类型窗口中选择“Visual Basic项目”,在模板窗口中选择“Windows应用程序”,在名称域中输入“PrintExample”,然后选择保存路径。
单击“确认”。
■添加控件和设置属性向当前窗体上添加三个Button控件,将他们的Text属性改为和界面一致。
■添加组件类和要打印的文件通过菜单“项目|添加组件”为当前项目添加一个组件类,并添加一个需要打印的文件。
■添加代码'组件类中的代码Imports SystemImports ponentModelImports System.Windows.FormsImports System.DrawingImports System.Drawing.PrintingImports System.IONamespace Microsoft.Samples.WinForms.VB.PrintingExample5Public Class TextFilePrintDocumentInherits PrintDocumentPrivate printFont As FontPrivate streamToPrint As StreamReaderPublic Sub New(streamToPrint As StreamReader)MyBase.NewMe.streamToPrint = streamToPrintEnd SubOverrides Protected Sub OnBeginPrint(ev As PrintEventArgs)MyBase.OnBeginPrint(ev)printFont = new Font("Arial", 10)End Sub'Override the OnPrintPage to provide the printing logic for the documentOverrides Protected Sub OnPrintPage(ev As PrintPageEventArgs)MyBase.OnPrintPage(ev)Dim lpp As Single = 0Dim yPos As Single = 0Dim count As Integer = 0Dim leftMargin As Single = ev.MarginBounds.LeftDim topMargin As Single = ev.MarginBounds.TopDim line as String'Work out the number of lines per page'Use the MarginBounds on the event to do thislpp = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics)'Check count first so that we don't read line that we won't printline=streamToPrint.ReadLine()While ((count < lpp) And Not(line Is Nothing))yPos = topMargin + (count * printFont.GetHeight(ev.Graphics))ev.Graphics.DrawString (line, printFont, Brushes.Black, leftMargin,yPos, new StringFormat())count = count + 1if (count < lpp) thenline=streamToPrint.ReadLine()end ifEnd WhileIf (line <> Nothing) Thenev.HasMorePages = TrueElseev.HasMorePages = FalseEnd IfEnd SubEnd ClassEnd Namespace'主窗体中的代码Imports SystemImports ponentModelImports System.Windows.FormsImports System.DrawingImports System.Drawing.PrintingImports System.IONamespace Microsoft.Samples.WinForms.VB.PrintingExample5Public Class PrintFormInherits System.Windows.Forms.FormPrivate storedPageSettings As PageSettingsPublic Sub New ()MyBase.NewPrintForm = MeInitializeComponent()AddHandler printButton.Click, AddressOf printButton_ClickAddHandler pageSetupButton.Click, AddressOf pageSetupButton_ClickAddHandler printPreviewButton.Click, AddressOfprintPreviewButton_ClickEnd Sub'页面设置Private Sub pageSetupButton_Click(sender As object, e As System.EventArgs)Dim psDlg As New PageSetupDialogIf (storedPageSettings Is Nothing) ThenstoredPageSettings = new PageSettings()End IfpsDlg.PageSettings = storedPageSettingspsDlg.ShowDialogCatch ex As ExceptionMessageBox.Show("An error occurred - " + ex.Message) End TryEnd Sub'开始打印Private Sub printButton_Click(sender As object, e As System.EventArgs) TryDim streamToPrint As StreamReader = new StreamReader("PrintMe.Txt")Try'使用缺省打印机Dim pd As TextFilePrintDocument = newTextFilePrintDocument(streamToPrint)If Not (storedPageSettings Is Nothing) Thenpd.DefaultPageSettings = storedPageSettingsEnd IfDim dlg As New PrintDialog()dlg.Document = pdDim result As DialogResult = dlg.ShowDialog()If (result = System.Windows.Forms.DialogResult.OK) Thenpd.Print()End IfFinallystreamToPrint.Close()End TryCatch ex As ExceptionMessageBox.Show("An error occurred printing the file - " +ex.Message)End TryEnd Sub'打印预览Private Sub printPreviewButton_Click(sender As object, e AsSystem.EventArgs)TryDim streamToPrint As StreamReader = new StreamReader("PrintMe.Txt")TryDim pd As TextFilePrintDocument = newTextFilePrintDocument(streamToPrint)If Not (storedPageSettings Is Nothing) Thenpd.DefaultPageSettings = storedPageSettingsEnd IfDim dlg As New PrintPreviewDialog()dlg.Document = pddlg.ShowDialog()FinallystreamToPrint.Close()End TryCatch ex As ExceptionMessageBox.Show("An error occurred - " + ex.Message) End TryPublic Overloads Overrides Sub Dispose()MyBase.Dispose()components.Dispose()End Sub<STAThread()> Shared Sub Main()System.Windows.Forms.Application.Run(New PrintForm())End SubEnd ClassEnd Namespace■运行程序单击菜单“调试|启动”或单击图标运行程序。
〖ALT键﹢鼠标右键开始╱暂停;鼠标左键控制速度〗启动自动滚屏功能VB编程步步高-打印篇(一)作者:甘冀平打印多页Rich Text打印对象在处理RichTextBox时由于忽视了Rich Text代码将不会工作得很好。
为了打印RichTextBox,要使用SelPrint命令,但是SelPrint不是非常得友好,它按照自己的方式打印然后产生退纸动作。
为了打印多页Rich Text,要找到每一页的开始和结束点,然后依此设置SelStart和SelLength,最后使用SelPrint打印出每一页。
以下是工作的每一个步骤:1、使用SaveFile命令保存编辑版本的文件。
2、转换编辑版本为打印版本:遍历这个文档,修改SelIndent和SelRightIndent的数值,使之适合于打印机(注意:编辑时的缩进数值对于屏幕是合适的,但不适用于打印机)。
做些其他的修改,比如:添加页眉,消除行号。
3、使用SelPrint循环一次打印一个页面。
这里,计算行数是一个技巧,找到LFCRs是容易的,但是,也必须要计算一下行缠绕,它也算在了行统计中,以及绝对不允许发生的页面溢出情况。
4、使用SelRTF=""删除打印版本。
5、使用LoadFile重新启动编辑版本。
打印MSFlexGrid这里有一个快速打印MSFlexGrid控件内容的方法:Printer.PaintPicture MSFlexGrid_Name.Picture, 0, 0Printer.EndDoc如果想打印满页面的整个长度,请在前面添加下面2个语句:Dim old_width as IntegerMSFlexGrid_Name.width=printer.width然后,再在尾部添加:MSFlexGrid_Name.width=old_width快速打印多个拷贝当以TrueType字体打印一个文档时,系统将下载打印机需要的字体,这样做将花费很长的时间。
VB的几种打印方法我们编程时,如果在程序中加入“打印”功能会使程序更加完善,更加专业。
下面,我提供几种编写打印程序的方法以供大家参考。
1. 采用Visual Basic提供的简单打印函数PrintForm方法应用程序窗体的PrintForm方法时Visual Basic把当前窗体的位图送到打印机。
该方法的优点在于它几乎不需要任何编程但也有很大缺陷。
最为突出的是当低分辨率图形在高分辨率打印机上打印时其结果令人无法满意会产生锯齿。
代码如下:Private Sub Command1_Click '用PrintForm打印Me.PrintForm '打印窗体的可见区域End Sub2. 用Printer对象要想产生复杂的打印输出编程较为烦琐。
Printer对象代表系统缺省的打印机Printer对象支持许多由窗体和图形框所支持的属性和方法三种对象都有画线和画方框。
应用程序可用以下代码在Printer对象上画出1平方英寸的方框。
注意打印机以twips来测量距离。
每英寸有1440个twips。
Printer.Line2144021440-Step14401440 B打印机、从窗体和图形框都有Circle、PaintPicture、Print、Pset、TextHeight、TextWidth方法。
使用这些方法应用程序可以为打印机生成高分辨率输出。
打印文本直接用Print方法,见下列代码:Printer.Print "Hello China ComputerWorld" '打印字符串Printer对象还有一些窗体和图形框都没有方法NewPage告诉打印机程序对当前输出页的发送已经结束Printer对象应开始新的一页。
EndDoc告诉VB程序创建文档结束VB应将它发送到物理打印机上打印。
KillDoc取消当前打印作业。
应用程序应该终止由EndDoc和KillDoc所设定的每个打印作业。
Zoom属性用于定义打印输出的缩放因子。
Copies属性用于定义打印的副本数目。
3. 如果你在编程时用到了RichTextBox控件那么你可以使用该控件的SelPrint 方法来打印代码如下:Private Sub Command3_Click 'SelPrint方法CommonDialog1.Flags=cdlPDReturnDC+cdlPDNoPageNumsIf RTF1.SelLength = 0 Then 'RTF1为窗体的RichTextBox控制CommonDialog1.Flags = CommonDialog1.Flags+ cdlPDAllPagesElseCommonDialog1.Flags = CommonDialog1.Flags+ cdlPDSelectionEnd IfCommonDialog1.CancelError = TrueOn Error Resume NextCommonDialog1.ShowPrinterIf Err.Number = cdlCancel Then Exit SubIf Err.Number <> 0 ThenBeepMsgBox "Error printing file." & vbCrLf + Err.Description vbOKOnly +vbExclamation "Printing Error" Exit SubEnd IfPrinter.Print ""RTF1.SelPrint CommonDialog1.hDC '打印RTF1控件的可见区域End Sub上面代码先进行打进设置再进行打印。
如果不需要设置采用下面代码更为简单RTF1.SelPrint Printer.hDC '打印RTF1控件的可见区域4.可以在VB中调用Word 97提供的OLE自动化服务利用Word 97强大的打印功能来完成VB打印代码如下:Private Sub Command4_Click '调用Word打印Dim objWord As ObjectConst CLASSOBJECT = "Word.Application"On Error GoTo objErrorSet objWord = CreateObject CLASSOBJECTobjWord.Visible = TrueobjWord.Documents.AddWith objWordst.Range.Bold = Falsest.Range.Font.Size =20 = "黑体"st.Range.Font.ColorIndex==4st.Range.Text = "我是计算机世界读者"End WithClipboard.ClearClipboard.SetText "通过剪切板向WORD传送数据"objWord.Selection.PasteobjWord.PrintPreview = True '预览方式'objWord.PrintOut'执行打印'objWord.Quit'退出WordExit SubobjErrorIf Err <> 429 ThenMsgBox Str$Err & Error$Set objWord = Nothing '不能创建Word对象则退出Exit SubElseResume NextEnd IfEnd SubVB打印设置问题2007-12-9 12:57提问者:988510622|浏览次数:1504次请认真看完谢谢!我的提问:我写了一个VB的记事本可以自定义字号的大小比如H2O"H"是12号"2"是8号"0"是12号可以在记事本上正常显示出来可是打印时却是统一的大小谁能写出解决的源码?确认可用后我给300分!我的源码是:Private Sub Command1_Click()Dim HWidth, HHeight, I, Msg ' 声明变量。
On Error GoTo ErrorHandler ' 设置错误处理程序。
For I = 1 To 1 ' 设置1 个迭代。
Printer.Font.Size = 10HWidth = 300HHeight = 200Printer.CurrentX = Text3.TextPrinter.CurrentY = Text5.TextPrinter.Print 文本内容.Text ' 打印文本内容。
个人认为是:Printer.Font.Size = 10这里的问题!请高手指点!朋友的回答:要打印多种字号,而程序中只设置了一种字号:10,所以打印出来当然是同一大小的了如果要打印不同字号,那就要对每个字符设置不同的字号在你写的程序的基础上再加上字符分割和字号设置for j=1 to len(文本内容.text)printer.font.size=inputbox("输入第" & j & "个字符的字号")printer.print mid(文本内容,j,1);next j这个程序实现了你要的功能,但是有些麻烦,因为打印的时候每个字的字号都需要输入,你可以根据这个修改一下,比如用一个数组保存每个字符的字号,这样就很方便的实现了你的功能可是定义这个数组我不会谁能帮帮我谢谢请写出详细的源代码注:不要RichTextBox的打印方法.满意回答Printer.Font.Size = 10 是这里有问题..你以经知道啦.所有要想改变打印时的字体就把这个去掉..然后定义..变量..让Printer.Font.Size等于你变义的变量...这样就可以成功啦..也可以这样...下拉框=Printer.Font.Size然后在写拉框里写入字号...或者用text也可以..详细的代码..太多..很麻烦..抱歉..VB打印设置的一些摘要Posted on 2005-08-03 08:54 Randy阅读(1424) 评论(0)编辑收藏尺寸:直接设置打印机Height 和Width 属性,会自动地将PaperSize 设置为vbPRPSUser。
Printer.Height=10*567Printer.Width=5*567Printer.ScaleWidth = 210Printer.ScaleHeight = 297Printer.ScaleMode = 6 '设置打印的单位Printer.PaperSize = vbPRPSA4 '定义纸张大小为A4Printer.FontSize = 11'如何用printer设置打印方向为横向打印---------------------------------------------------------------Printer.Orientation=VbPRORPortrait'纵向打印Printer.Orientation=VbPRORLandscape'横向打印---------------------------------------------------------------Printer.Orientation = VbPRORLandscape---------------------------------------------------------------Printer.Orientation = 2'设置打印页边距'你可以使用打印机的Scale属性来设置打印页边距。
下面的代码设置左边距为1/2英寸。
右边距为3/4英寸。
乘以1440是将英尺转换成twips。
Printer.ScaleLeft = -0.75 * 1440Printer.ScaleTop = -0.5 * 1440Printer.CurrentX = 0Printer.CurrentY = 0缇是一个与屏幕无关的单位,用来保证屏幕应用程序对屏幕元素的定位和比例在所有的显示系统上的一致性。
一缇等价于1/20 个打印机的磅。
一逻辑英寸大约有1440 缇,一逻辑厘米约567 缇(打印时的一英寸或一厘米所对应的屏幕上的长度)。
Option ExplicitPrivate Sub Command1_Click()' 错误捕捉,如果计算机没有设置好打印机则' 显示错误提示"打印机尚未就绪,请准备好打印机!"On Error GoTo P1Dim I As Integer, K As IntegerDim M As Integer, N As IntegerDim X1() As String, X2() As Integer, X3() As IntegerDim A As String, B As Integer, C As IntegerDim Y As Single, Dy As SingleDim X As Single, Dx As SingleDim Page As Integer' 由于需要分页打印,这样将数据存入数组在后面的处理上就比较方便。