如何将文本中心与纸张对齐?

时间:2015-05-19 07:05:29

标签: c# vb.net visual-studio

我有一台热敏打印机,传递的内容如下(vb& c#供参考):

vb代码:

printstring = printstring & vbNewLine & "Fax: " & fax1 & vbNewLine

C#:

printstring = "Fax"+ fax1 ;

我得到了所需的输出:

  

传真:26594812

输出不是中心对齐的。打印机中使用的纸张尺寸为:3 1/8 x 230',

如何将文本与文章对齐?

[vb或c#代码会有所帮助]

2 个答案:

答案 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。