所有源代码均在这里下载:
http://www.up2e.com/resource.php
用vb.net实现写字板程序报告(四)完 ---by zigz (LuHai) luluhai@eastday.com
5)有关打印预览
起初以为很简单,但最后发现预览总是无法预览到实际文件,最终还是在微软站点上获得了相关信息,并很好的利用他到本应用程序中,而且十分成功,可以成功预览了。为了怕自己误导别人,所以把它原文也打印出来。
下面是两幅图片用来演示打印预览的效果。
图5在RichTextBox中的文本 图6打印预览中的文本
打印预览相关代码:
(注意!以下有关打印的代码均来自微软技术文档中)
'''' 必须确定所有的打印事件都是针对同一个 PrintDocument
Private WithEvents pdoc As New PrintDocument()
'''' 打印文件是一个函数性的打印事件,每当要打印时该事件被触发
'''' 下面是一个非常快速和有用的精确计算要打印的文本是否能够被包括到整张打印页面
''''是我从微软站点上得到的资料,我把它应用到了我的程序中
Private Sub pdoc_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles pdoc.PrintPage
'''' Declare a variable to hold the position of the last printed char. Declare
'''' as static so that subsequent PrintPage events can reference it.
Static intCurrentChar As Int32
'''' Initialize the font to be used for printing.
Dim font As New font("Microsoft Sans Serif", 24)
Dim intPrintAreaHeight, intPrintAreaWidth, marginLeft, marginTop As Int32
With pdoc.DefaultPageSettings
'''' Initialize local variables that contain the bounds of the printing
'''' area rectangle.
intPrintAreaHeight = .PaperSize.Height - .Margins.Top - .Margins.Bottom
intPrintAreaWidth = .PaperSize.Width - .Margins.Left - .Margins.Right
'''' Initialize local variables to hold margin values that will serve
'''' as the X and Y coordinates for the upper left corner of the printing
'''' area rectangle.
marginLeft = .Margins.Left '''' X coordinate
marginTop = .Margins.Top '''' Y coordinate
End With
'''' If the user selected Landscape mode, swap the printing area height
'''' and width.
If pdoc.DefaultPageSettings.Landscape Then
Dim intTemp As Int32
intTemp = intPrintAreaHeight
intPrintAreaHeight = intPrintAreaWidth
intPrintAreaWidth = intTemp
End If
'''' Calculate the total number of lines in the document based on the height of
'''' the printing area and the height of the font.
Dim intLineCount As Int32 = CInt(intPrintAreaHeight / font.Height)
'''' Initialize the rectangle structure that defines the printing area.
Dim rectPrintingArea As New RectangleF(marginLeft, marginTop, intPrintAreaWidth, intPrintAreaHeight)
[1] [2] [3] 下一页 没有相关教程
|