如何使用 chr 值在点阵打印机中打印文本文件?
How to print a text file in Dot Matrix printer using chr values?
我尝试使用从 crystal 报告导出的 doc、rtf、pdf、xlsx 格式在点阵打印机 (Wipro (wep) EX 330+dx) 中打印文件,但过程打印速度非常慢。
我正在尝试打印帐单,但帐单需要大约 50-60 秒的时间。
我什至尝试通过 crystal 报告将文件传输到文本,但没有帮助。
所以,我的一位同事向我展示了一种通过文本文件打印它的方法,他正在使用 chr(14) & "TITLE NAME HERE" & chr(27) & chr(18)
等命令。它在文本文件中写入 TITLE NAME HERE
等文本文件中的一些特殊字符,但是当我们使用 bat 文件打印它时,字符 TITLE NAME HERE 变得又大又粗点阵打印机,打印时特殊字符消失。此外,打印速度很快。我猜这些特殊字符就像文本文件 HTML 中的标签一样工作。
所以,我的问题是,是否有这些字符的指南以及它们是如何工作的?
什么字符对印刷和所有东西有什么影响?
Chr()
函数 return 是指定数字的 ASCII 字符。
Dim MyChar
MyChar = Chr(65) ' Returns A.
MyChar = Chr(97) ' Returns a.
MyChar = Chr(62) ' Returns >.
MyChar = Chr(37) ' Returns %.
数字0-31
代表“不可打印”的字符。例如Chr(10)
表示 LineFeed,Chr(13)
表示 Carriage return。
数字32-47
表示一些符号如, , . , / , * , etc
48-57
代表数字0 - 9
。 65 - 90
表示字母 A-Z
.
有关 ASCII 码工作原理的详细信息,请参阅 here。
您应该可以通过使用打印机支持的字体来解决速度问题。否则,打印机可能会被迫将您的测试呈现为图像。
您是否看到 'Draft 10 cpi' 字体是 Crystal 中的一个选项?
目前关于这个问题的讨论结论是crystal报告打印比点阵打印机中的文本文件慢。
因此,如果我们谈论在文本文件中生成报告,
以下是我的同事提供的一些变量,这些变量可以简化在文本文件中生成报告的过程。
'---------------------------------------------DOT MATRIX PRINTER VARIABLES-----------------------------------------------------------------------
Dim es = Chr(27)
Dim eject = Chr(12)
Dim bx1 = Chr(176)
Dim bx2 = Chr(177)
Dim bx3 = Chr(178)
Dim bx4 = Chr(219)
Dim ebig1 = Chr(14) & Chr(27) & "w1" & Chr(27) & "G" 'extra large
Dim ebig2 = Chr(27) & "w0" & Chr(27) & "H" & Chr(18) 'extra large
Dim emf1 = es & "E" ' Select Emphasize Mode
Dim emf2 = es & "F" ' Cancel Emphasize Mode
Dim ita1 = es & "4" ' Select Italic Mode
Dim ita2 = es & "5" ' Cancel Italic Mode
Dim uln1 = es & "-1" ' Turn Underlining On
Dim uln2 = es & "-0" ' Turn Underlining Off
'Commented variables are for small column printers like Epson printers
'Dim chr1 = Chr(27) & "(s10H"
'Dim chr2 = Chr(27) & "(s10H"
'Dim cnd1 = Chr(27) & "(s16.5H"
'Dim cnd2 = Chr(27) & "(s10H"
'Dim big1 = Chr(27) & " "
'Dim big2 = Chr(27) & " "
'Dim stk1 = Chr(27) & "(s5H"
'Dim stk2 = Chr(27) & "(s10H"
Dim chr1 = es & "M" ' Select 12 Pitch"
Dim chr2 = es & "P" ' Select 10 Pitch
Dim big1 = es & "W1" ' Select Double-width Mode(one line)"
Dim big2 = es & "W0" ' Cancel Double-width Mode(one line)"
Dim cnd1 = Chr(15) ' Select Condensed Mode
Dim cnd2 = Chr(18) ' Cancel Condensed Mode
Dim stk1 = es & "G" ' Select Double-strike Mode
Dim stk2 = es & "H" ' Cancel Double-strike Mode
'------------------------------------------------------------------------------------------------------------------------------------------------
将文本文件直接打印到点阵打印机可能行不通。
注意:运行文本文件使用bat文件工作。
这就是我在文本文件中创建报告的方式。此处未显示的一些变量声明。
stringToPrint = Nothing
Dim Repline As String = String.Join("", Enumerable.Repeat("=", 80)) '
A LINE CREATED WITH 80 '=' character to show a visible linefeed
stringToPrint = chr2 & Environment.NewLine & big1 & PubCName & big2 & Environment.NewLine
stringToPrint = stringToPrint & Left$(PubCAdd, 30) & Space(IIf(PubCAdd.Length > 30, 0, 30 - PubCAdd.Length)) & Space(5) & "GST NO./PAN NO." & Space(1) & PubGSTNo & Environment.NewLine
stringToPrint = stringToPrint & Left$(PubCAdd2, 30) & Space(IIf(PubCAdd2.Length > 30, 0, 30 - PubCAdd2.Length)) & Space(5) & "PHONE NO." & Space(1) & PubCPh1 & Environment.NewLine
stringToPrint = stringToPrint & PubCCity & "-" & Space(1) & PubPinCode & Space(10) & big1 & "***TAX INVOICE***" & big2 & Environment.NewLine
stringToPrint = stringToPrint & Repline & Environment.NewLine
我生成了一个 bat 文件说 Print.bat。 bat文件里面的代码是
@echo off
type fileaddresshere > prn
exit
fileaddresshere 包括完整地址和扩展名。示例:D:\TextPrint.txt
我不知道上面代码中的最后一个特殊字符,但我会尽快更新答案。
请随时对此答案提出建议。即使我现在正在尝试这些代码并观察其印刷效果,所以对我来说一切都是反复试验。
我尝试使用从 crystal 报告导出的 doc、rtf、pdf、xlsx 格式在点阵打印机 (Wipro (wep) EX 330+dx) 中打印文件,但过程打印速度非常慢。
我正在尝试打印帐单,但帐单需要大约 50-60 秒的时间。
我什至尝试通过 crystal 报告将文件传输到文本,但没有帮助。
所以,我的一位同事向我展示了一种通过文本文件打印它的方法,他正在使用 chr(14) & "TITLE NAME HERE" & chr(27) & chr(18)
等命令。它在文本文件中写入 TITLE NAME HERE
等文本文件中的一些特殊字符,但是当我们使用 bat 文件打印它时,字符 TITLE NAME HERE 变得又大又粗点阵打印机,打印时特殊字符消失。此外,打印速度很快。我猜这些特殊字符就像文本文件 HTML 中的标签一样工作。
所以,我的问题是,是否有这些字符的指南以及它们是如何工作的?
什么字符对印刷和所有东西有什么影响?
Chr()
函数 return 是指定数字的 ASCII 字符。
Dim MyChar
MyChar = Chr(65) ' Returns A.
MyChar = Chr(97) ' Returns a.
MyChar = Chr(62) ' Returns >.
MyChar = Chr(37) ' Returns %.
数字0-31
代表“不可打印”的字符。例如Chr(10)
表示 LineFeed,Chr(13)
表示 Carriage return。
数字32-47
表示一些符号如, , . , / , * , etc
48-57
代表数字0 - 9
。 65 - 90
表示字母 A-Z
.
有关 ASCII 码工作原理的详细信息,请参阅 here。
您应该可以通过使用打印机支持的字体来解决速度问题。否则,打印机可能会被迫将您的测试呈现为图像。
您是否看到 'Draft 10 cpi' 字体是 Crystal 中的一个选项?
目前关于这个问题的讨论结论是crystal报告打印比点阵打印机中的文本文件慢。
因此,如果我们谈论在文本文件中生成报告,
以下是我的同事提供的一些变量,这些变量可以简化在文本文件中生成报告的过程。
'---------------------------------------------DOT MATRIX PRINTER VARIABLES-----------------------------------------------------------------------
Dim es = Chr(27)
Dim eject = Chr(12)
Dim bx1 = Chr(176)
Dim bx2 = Chr(177)
Dim bx3 = Chr(178)
Dim bx4 = Chr(219)
Dim ebig1 = Chr(14) & Chr(27) & "w1" & Chr(27) & "G" 'extra large
Dim ebig2 = Chr(27) & "w0" & Chr(27) & "H" & Chr(18) 'extra large
Dim emf1 = es & "E" ' Select Emphasize Mode
Dim emf2 = es & "F" ' Cancel Emphasize Mode
Dim ita1 = es & "4" ' Select Italic Mode
Dim ita2 = es & "5" ' Cancel Italic Mode
Dim uln1 = es & "-1" ' Turn Underlining On
Dim uln2 = es & "-0" ' Turn Underlining Off
'Commented variables are for small column printers like Epson printers
'Dim chr1 = Chr(27) & "(s10H"
'Dim chr2 = Chr(27) & "(s10H"
'Dim cnd1 = Chr(27) & "(s16.5H"
'Dim cnd2 = Chr(27) & "(s10H"
'Dim big1 = Chr(27) & " "
'Dim big2 = Chr(27) & " "
'Dim stk1 = Chr(27) & "(s5H"
'Dim stk2 = Chr(27) & "(s10H"
Dim chr1 = es & "M" ' Select 12 Pitch"
Dim chr2 = es & "P" ' Select 10 Pitch
Dim big1 = es & "W1" ' Select Double-width Mode(one line)"
Dim big2 = es & "W0" ' Cancel Double-width Mode(one line)"
Dim cnd1 = Chr(15) ' Select Condensed Mode
Dim cnd2 = Chr(18) ' Cancel Condensed Mode
Dim stk1 = es & "G" ' Select Double-strike Mode
Dim stk2 = es & "H" ' Cancel Double-strike Mode
'------------------------------------------------------------------------------------------------------------------------------------------------
将文本文件直接打印到点阵打印机可能行不通。
注意:运行文本文件使用bat文件工作。
这就是我在文本文件中创建报告的方式。此处未显示的一些变量声明。
stringToPrint = Nothing
Dim Repline As String = String.Join("", Enumerable.Repeat("=", 80)) '
A LINE CREATED WITH 80 '=' character to show a visible linefeed
stringToPrint = chr2 & Environment.NewLine & big1 & PubCName & big2 & Environment.NewLine
stringToPrint = stringToPrint & Left$(PubCAdd, 30) & Space(IIf(PubCAdd.Length > 30, 0, 30 - PubCAdd.Length)) & Space(5) & "GST NO./PAN NO." & Space(1) & PubGSTNo & Environment.NewLine
stringToPrint = stringToPrint & Left$(PubCAdd2, 30) & Space(IIf(PubCAdd2.Length > 30, 0, 30 - PubCAdd2.Length)) & Space(5) & "PHONE NO." & Space(1) & PubCPh1 & Environment.NewLine
stringToPrint = stringToPrint & PubCCity & "-" & Space(1) & PubPinCode & Space(10) & big1 & "***TAX INVOICE***" & big2 & Environment.NewLine
stringToPrint = stringToPrint & Repline & Environment.NewLine
我生成了一个 bat 文件说 Print.bat。 bat文件里面的代码是
@echo off
type fileaddresshere > prn
exit
fileaddresshere 包括完整地址和扩展名。示例:D:\TextPrint.txt
我不知道上面代码中的最后一个特殊字符,但我会尽快更新答案。
请随时对此答案提出建议。即使我现在正在尝试这些代码并观察其印刷效果,所以对我来说一切都是反复试验。