3

我想使用 php 和 LPR 将标签发送到我的 tec 打印机。一切正常,除了某些部分的对齐。我的代码/标签原样:

{D0478,0600,0400,0640|}
{C|}
    {PC01;0040,0135,05,05,J,00,B=Item number: xxxxxx|}
    {PC02;0040,0170,05,05,I,00,B= Brand Model ExtraInfo|}
    {PC03;0040,0205,05,05,I,00,B=Optional Second Line|}
    {PC04;0465,0270,05,05,J,00,B=Eurosign?? Price|}
    {PC04;0380,0315,05,05,I,00,B=excl. btw (vat)|}
{XS;I,0001,0002C6101|}

所以[ESC]PC的手册是这样说的:

完整手册可在此处找到(第 50-56 页的内容): 手册

[ESC] PCaa; bbbb, cccc, d, e, ff (,ghh), ii, j (, Jkkll) (, Mm) (, nooooooooooo)(, Zpp) (, Pq)(=rrr------rrr) [LF ] [无]

...跳过第一部分...

J:人物归属

    B: Black character
    W (aabb): Reverse character
       aa: No. of dots from the character string to the end 
           of the black background in the horizontal direction
       bb: No. of dots from the character string to the end 
           of the black background in the vertical direction
              aa: 01 to 99 (in units of dots)
              bb: 01 to 99 (in units of dots)
    F (aabb): Boxed character
       aa: No. of dots from the character string area to 
           the box in the horizontal direction
       bb: No. of dots from the character string area to
           the box in the vertical direction
               aa: 01 to 99 (in units of dots)
               bb: 01 to 99 (in units of dots)
    C (aa): Stroked out character
        aa: No. of dots from the character string area to
            the end of the stroke
        aa: 01 to 99 (in units of dots)
    * Descriptions in parentheses are omissible.
    (If omitted, it is character magnification (horizontal or 
    vertical magnifications, whichever is larger) × 6 dots.)

...再次跳过...

Pq:对齐

(Omissible, When omitted, the alignment is set to left.)
    q: Designates the character position
        1: Left
        2: Center
        3: Right
        4aaaa: Justification
            aaaa: Character string area of X direction
                  0050 to 1040 (in 0.1 mm units)
        5aaaabbbcc: Automatic line feed
            aaaa: Character string area of X direction
                  0050 to 1040 (in 0.1 mm units)
            bbb: Line feed spacing
                 010 to 500 (in 1 mm units)
            cc: Number of lines
                01 to 99
rrr------rrr: Data string to be printed (Omissible)
              Max. 255 digits 

完整手册可在此处找到(第 50-56 页的内容): 手册

现在,在所有这些文本之后。我怎样才能使文本正确对齐?

作为一个额外的问题;)

我如何使用€(欧元)符号。

手册上说要使用 B0H .. 我试过了,但还没有解决方案。

提前致谢!

4

3 回答 3

3

默认情况下,€(欧元)符号是 B0H。要设置 €(欧元)符号,您必须将 B0H 转换为十进制。在这种情况下,B0H = (char)176。
C# 中的示例:

decimal price = 10.00;
SringBuilder sb = new StringBuilder();
sb.Add("{PC04;0465,0270,05,05,J,00,B=" + (char)176 + " " + price + "|}");

现在,如果您使用 .Net 和 Socket 发送命令,那么您必须转换 byte[] 中的字符串,并且必须使用以下编码Encoding.BigEndiangUnicode。然后,例如:
Socket c;
string str = "{PC04;0465,0270,05,05,J,00,B=" + (char)176 + " " + price + "|}";
byte[] buffer = System.Text.Encoding.BigEndianUnicode.GetBytes(str)
c.Send(buffer);

我希望我说清楚了。

于 2017-01-21T16:59:45.780 回答
2

我找到了答案..
只需要学会阅读。

{PC04;0465,0270,05,05,J,00,B=Eurosign?? Price|}

应该

{PC04;0465,0270,05,05,J,00,B,P3=Eurosign?? Price|}

=符号表示我们显示的字符串的开头,最多 225 位数字。

于 2014-08-20T08:18:23.830 回答
2

正如正确地告知的那样,对文件进行特定对齐的命令是,

Px (where x can be 1 = Left , 2 = center, 3 Right)在最后的“B”之后和“=”之前

例子:

{PC01;0040,0135,05,05,J,00,B**,P2**=Item number: xxxxxx|}

在这种情况下,坐标将保持为“单词的中心”,请注意“标签的左侧”是由命令决定的

{D0478,0600,0400,0640|}

在您的情况下,您告诉打印机标签是 40 毫米宽。东芝打印机由于中心对齐,通过“D”命令将打印头的左侧靠近标签的左侧

于 2016-12-29T14:23:56.823 回答