📄 如何打印多行的文本框.txt
字号:
Printer.Print不 会 自 动 换 行 , 而 且 当 每 次 从 新 行 打 印 时 , 都 是 从 最 左 端 开 始 , 而 我 们 通 常 希 望 左 侧 保 留 一 些 空 白 地 方 。 下 面 的 程 序 可 以 简 单 地 介 绍 一 下 原 理 :
Private Sub Command1_Click()
Dim s As String, sLine As String
Printer.CurrentY = 150
s = Text1.Text
pos = InStr(s, vbCrLf)
Do While pos > 0
sLine = Left(s, pos - 1)
s = Mid(s, pos + 2)
PrintSingleLine Trim(sLine), 100, 50
pos = InStr(s, vbCrLf)
Loop
PrintSingleLine Trim(s), 100, 50
End Sub
分 行 有 两 种 , 一 种 是 使 用 回 车 换 行 , 另 一 种 是 一 行 太 长 了 。 上 面 这 段 程 序 就 是 按 照 回 车 换 行 把 文 字 分 成 多 个 段 。 然 后 对 每 个 段 都 调 用 PrintSingleLine进 行 打 印 。 PrintSingleLine的 第 一 个 参 数 为 文 字 , 第 二 个 参 数 为 每 行 的 左 侧 的 坐 标 , 第 三 个 参 数 表 示 一 行 可 以 打 印 多 少 字 符 。 该 函 数 如 下 :
Sub PrintSingleLine(s As String, X As Long, n As Integer)
Dim nLines As Integer
nLines = Len(s) / n
If Len(s) > n * nLines Then nLines = nLines + 1
If Len(s) = 0 Then nLines = 1 ' 空 行
For i = 0 To nLines - 1
Printer.CurrentX = X
Printer.Print Mid(s, i * n + 1, n)
Next
End Sub
在 这 里 , 我 们 计 算 一 段 文 字 可 以 打 印 多 少 行 , 然 后 用 程 序 分 行 打 印 。
<END>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -