我怎样使文本中心与纸张对齐?

本文关键字:张对齐 对齐 文本 | 更新日期: 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右对齐。