如何打印指定路径下的文件

zy_8002006 2006-04-24 09:19:56
在WinForm下,在窗体上有一个打印按钮,如何在按打印按钮时,打印出来的内容是我给定路径下的文件内容?
...全文
268 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zy_8002006 2006-04-24
  • 打赏
  • 举报
回复
大家不会是因为分太少吧?
sz_lgp 2006-04-24
  • 打赏
  • 举报
回复
调用线程打开Acrobat的Rearder用Acrobat的Rearder不打印。
zy_8002006 2006-04-24
  • 打赏
  • 举报
回复
那这个问题如何解决呢?
copico 2006-04-24
  • 打赏
  • 举报
回复
可以打印,我估计是乱码
如果用StreadRead读到是数据数还可以,如果包含了PDF自己格式信息,那就要出错了
zy_8002006 2006-04-24
  • 打赏
  • 举报
回复
如果是PDF文件呢?
copico 2006-04-24
  • 打赏
  • 举报
回复
Public Class PrintingExample
Inherits System.Windows.Forms.Form
Private components As System.ComponentModel.Container
Private printButton As System.Windows.Forms.Button
Private printFont As Font
Private streamToPrint As StreamReader

Public Sub New()
' The Windows Forms Designer requires the following call.
InitializeComponent()
End Sub

' The Click event is raised when the user clicks the Print button.
Private Sub printButton_Click(sender As Object, e As EventArgs)
Try
streamToPrint = New StreamReader("C:\My Documents\MyFile.txt")
'打印C:\My Documents\MyFile.txt,你可以换成其它你想打印的文件
Try
printFont = New Font("Arial", 10)
Dim pd As New PrintDocument()
AddHandler pd.PrintPage, AddressOf Me.pd_PrintPage
pd.Print()
Finally
streamToPrint.Close()
End Try
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub

' The PrintPage event is raised for each page to be printed.
Private Sub pd_PrintPage(sender As Object, ev As PrintPageEventArgs)
Dim linesPerPage As Single = 0
Dim yPos As Single = 0
Dim count As Integer = 0
Dim leftMargin As Single = ev.MarginBounds.Left
Dim topMargin As Single = ev.MarginBounds.Top
Dim line As String = Nothing

' Calculate the number of lines per page.
linesPerPage = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics)

' Print each line of the file.
While count < linesPerPage
line = streamToPrint.ReadLine()
If line Is Nothing Then
Exit While
End If
yPos = topMargin + count * printFont.GetHeight(ev.Graphics)
ev.Graphics.DrawString(line, printFont, Brushes.Black, leftMargin, yPos, New StringFormat())
count += 1
End While

' If more lines exist, print another page.
If Not (line Is Nothing) Then
ev.HasMorePages = True
Else
ev.HasMorePages = False
End If
End Sub


' The Windows Forms Designer requires the following procedure.
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Me.printButton = New System.Windows.Forms.Button()

Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(504, 381)
Me.Text = "Print Example"

printButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
printButton.Location = New System.Drawing.Point(32, 110)
printButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat
printButton.TabIndex = 0
printButton.Text = "Print the file."
printButton.Size = New System.Drawing.Size(136, 40)
AddHandler printButton.Click, AddressOf printButton_Click

Me.Controls.Add(printButton)
End Sub

' This is the main entry point for the application.
Public Shared Sub Main()
Application.Run(New PrintingExample())
End Sub

End Class

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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