我有一台热敏打印机,传递的内容如下(vb& c#供参考):
vb代码:
printstring = printstring & vbNewLine & "Fax: " & fax1 & vbNewLine
C#:
printstring = "Fax"+ fax1 ;
我得到了所需的输出:
传真:26594812
输出不是中心对齐的。打印机中使用的纸张尺寸为:3 1/8 x 230',
如何将文本与文章对齐?
[vb或c#代码会有所帮助]
答案 0 :(得分:0)
如果您使用Graphics类绘制打印输出(PrintDocument PrintPage事件有e.Graphics),只需训练坐标:
e.Graphics.DrawString("string to print", fntInstance, Brushes.Black, e.PageBounds.Width / 2 - e.Graphics.MeasureString("string to print",fntInstance).Width/2, yCoord)
如果要将所有内容保存到txt文件,然后使用默认的Windows热敏打印机驱动程序进行打印,请使用一些测试符合一行的多少个字符,然后执行相同的操作,使用"字符串打印& #34; .Length / 2
让我们说一行中的最大字符是34 ...
Dim intMax as Integer = 34
stringToPrint = stringToPrint.PadLeft(intMax / 2 - stringToPrint.Length / 2, " ")
答案 1 :(得分:0)
在VB中:
将模块添加到项目中 -
在项目中添加以下代码 -
Public Sub PrintAlignedText(s As String, Alignment As AlignmentConstants)
Select Case Alignment
Case vbCenter
Printer.CurrentX = (Printer.ScaleWidth - Printer.TextWidth(s)) \ 2
Case vbLeftJustify
Printer.CurrentX = 0
Case vbRightJustify
Printer.CurrentX = Printer.ScaleWidth - Printer.TextWidth(s)
End Select
Printer.Print s
End Sub
然后转换:
printstring = printstring & vbNewLine & "Fax: " & fax1 & vbNewLine
要
PrintAlignedText "Centered Text", vbCenter
在PrintDocument中。
在C#中:
它很容易从VB代码转换 -
遵循VB代码的所有步骤和C#的代码在这里如果您 无法转换它 -
模块中的代码:
public void PrintAlignedText(string s, AlignmentConstants Alignment) {
switch (Alignment) {
case vbCenter:
Printer.CurrentX = (Printer.ScaleWidth - Printer.TextWidth(s));
2;
break;
case vbLeftJustify:
Printer.CurrentX = 0;
break;
case vbRightJustify:
Printer.CurrentX = (Printer.ScaleWidth - Printer.TextWidth(s));
break;
}
Printer.Print;
s;
}
PrintDocument中的代码:
PrintAlignedText;
"Centered Text";
,vbCenter;
这将打印到中心!!试试!!
如果您想要其他对齐,请将vbCentre替换为左对齐的vbLeftJustify和右对齐的vbRightJustify。