我怎样使文本中心与纸张对齐?
本文关键字:张对齐 对齐 文本 | 更新日期: 2023-09-27 17:49:44
我有一台热敏打印机,传递的内容如下(vb &c#提供参考):
vb代码:printstring = printstring & vbNewLine & "Fax: " & fax1 & vbNewLine
c#: printstring = "Fax"+ fax1 ;
我得到了想要的输出:
传真:26594812
输出没有居中对齐。打印机使用的纸张尺寸为:3 1/8 x 230',
如何使文字居中对齐?
如果您正在使用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热敏打印机驱动程序打印,测试一下每行适合多少字符,然后使用"字符串打印"做同样的事情。长度/2
假设一行的最大字符数是34…
Dim intMax as Integer = 34
stringToPrint = stringToPrint.PadLeft(intMax / 2 - stringToPrint.Length / 2, " ")
在VB中:
Add An Module To Your Project-
在项目中添加以下代码-
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#代码的所有步骤无法转换-
Code In Module:
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右对齐。