关于 PrintDocument 打印的问题

HBJMSHOP 2020-03-24 07:19:57
大家好,下面这段程度 运行到 pd.Print() 报错,请帮看下

Imports System.IO
Imports System.Drawing.Printing
Imports System.Text
Imports System.Drawing
Public Class Form2

Private sr As StringReader
'Private sr As String
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim sb As New StringBuilder()

sb.Append(" 停车场管理系统 \n")

sb.Append("*************************************\n")

Print(sb.toString())
End Sub
Public Function Print(ByVal str As String) As Boolean
Dim result As Boolean = True
' sr = TextBox1.Text

sr = New StringReader(str.ToString())
Dim pd As PrintDocument = New PrintDocument()
Dim pageSize As New PaperSize("First custom size", 600, 600)
pd.PrintController = New System.Drawing.Printing.StandardPrintController()
pd.DefaultPageSettings.Margins.Top = 2
pd.DefaultPageSettings.Margins.Left = 0
pd.DefaultPageSettings.PaperSize.Width = 320
pd.DefaultPageSettings.PaperSize.Height = 5150
pd.PrinterSettings.PrinterName = pd.DefaultPageSettings.PrinterSettings.PrinterName

pd.OriginAtMargins = True
Dim MARGIN As Margins = New Margins(1, 1, 1, 1)
pd.DefaultPageSettings.Margins = MARGIN


AddHandler pd.PrintPage, AddressOf Me.pd_PrintPage

Try
pd.Print()
Catch ex As Exception
result = False
Finally
If sr IsNot Nothing Then sr.Close()
End Try

Return result
End Function

Private Sub pd_PrintPage(ByVal sender As Object, ByVal ev As PrintPageEventArgs)
Dim printFont As Font = New Font("Arial", 9)
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 = ""
linesPerPage = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics)
'line = sr.ReadLine()) != null)
MsgBox(linesPerPage)

While count < linesPerPage And ((line = sr.ReadLine()) <> "")

yPos = topMargin + (count * printFont.GetHeight(ev.Graphics))
ev.Graphics.DrawString(line, printFont, Brushes.Black, leftMargin, yPos, New StringFormat())

count += 1
End While

If line IsNot Nothing Then
ev.HasMorePages = True
Else
ev.HasMorePages = False
End If
End Sub


End Class
--------------------------------------------------------------------------
运行到 pd.Print() 报错:“System.ComponentModel.Win32Exception”类型的未经处理的异常在 System.Drawing.dll 中发生
...全文
144 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

16,554

社区成员

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

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