关于 PrintDocument 打印的问题

HBJMSHOP HBJMSHOP 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
大家好,下面这段程度 运行到 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 中发生
...全文

相关推荐

printdocument打印问题

一、PrintDocument概述`PrintDocument`类是Windows Forms应用程序中用于设置打印参数和生成打印内容的主要对象。

jxlb1386

VB.NET打印及打印预览实战:PrintDocument分页与常见问题全解析

打印功能是企业级应用中最常见的需求之一,从单据报表到标签打印,稳定可靠的打印输出直接影响业务效率。在.NET开发中,PrintDocument作为底层的打印引擎,通过事件驱动模式将绘制逻辑交给开发者,结合PrintPreviewDialog实现所见即所得的预览体验。理解其工作原理与分页机制是解决打印错位、内容截断等问题的关键。通过合理设置纸张、边距及坐标体系,能够实现高度可控的打印方案。本文从实践角度梳理了PrintDocument的核心用法、常见踩坑案例及批量打印扩展思路,为VB.NET开发者在WinFo

投研帮

C#编程中使用printDocument类实现文字排版打印问题

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&amp;&amp;收藏&amp;&amp;订阅!持续更新中,up!up!up!! 全文目录:🍲问题描述🌴解决方案**问题解析:****解决方案概述:****实现代码:****代码说明:****效果展示:****参数调整:****总结:**🧧🧧 文末福利,等你来拿!🧧🧧✨️ Who am I? 🍲问题描述

bug菌¹

打印控件PrintDocument的使用

该事件调用`PrintDocument`的`Print()`方法来启动实际的打印过程。如果打印过程中出现任何异常,例如打印机未连接或驱动程序问题,则会捕获异常并通过消息框向用户显示错误信息。

chaoa888

C# winform打印excel的方法

这个过程涉及到的技术点比较多,包括文件的生成、转换以及图形绘制和打印操作。需要注意的是,在转换Excel到图片的过程中,可能需要考虑到图片的质量与文件大小之间的平衡问题。

weixin_38632046
评论
收藏 已收藏
分享
返回顶部
HBJMSHOP
VB 16,718 成员 110,520 内容