none
Imprimir com acento - Zebra RRS feed

Respostas

  • É só você mandar essas instruções para impressora dizendo qual codificação você irá usar.
    (a)  (b) (c)
    I8 , A,  351

    a) Quantidade de bits 8
    b) A codificação a ser usada  (Windows 1252) Latin 1
    c) O código do pais neste exemplo é o de Portugal como indica o manual  EPL Guide página 111.

    Vamos ao exemplo prático.
    Lembrando que \r (Return) \n (é a quebra de linha)

    Q304,010\r\n
    q831
    \r\n
    I8,A,351\r\n
    rN\r\n
    S1\r\n
    D7\r\n
    ZT\r\n
    JB\r\n
    OD\r\n
    R175,0\r\n
    N\r\n
    b88,96,D,h4,"11111.111111/1111-13"\r\n
    A72,8,1,1,1,1,N,"11111.111111/1111-13"\r\n
    A56,8,1,1,1,1,N,"Dispositivo,hardware ou co"\r\n
    A40,8,1,1,1,1,N,"Organizações Tabajara"\r\n
    b248,96,D,h4,"11111.111111/1111-13"\r\n
    A232,8,1,1,1,1,N,"11111.111111/1111-13"\r\n
    A216,8,1,1,1,1,N,"Dispositivo,hardware ou co"\r\n
    A200,8,1,1,1,1,N,"Organizações Tabajara"\r\n
    b408,96,D,h4,"11111.111111/1111-13"\r\n
    A392,8,1,1,1,1,N,"11111.111111/1111-13"\r\n
    A376,8,1,1,1,1,N,"Dispositivo,hardware ou co"\r\n
    A360,8,1,1,1,1,N,"Organizações Tabajara"\r\n
    \r\n
    P1\r\n

     


    quinta-feira, 11 de setembro de 2008 22:05

Todas as Respostas

  • É só você mandar essas instruções para impressora dizendo qual codificação você irá usar.
    (a)  (b) (c)
    I8 , A,  351

    a) Quantidade de bits 8
    b) A codificação a ser usada  (Windows 1252) Latin 1
    c) O código do pais neste exemplo é o de Portugal como indica o manual  EPL Guide página 111.

    Vamos ao exemplo prático.
    Lembrando que \r (Return) \n (é a quebra de linha)

    Q304,010\r\n
    q831
    \r\n
    I8,A,351\r\n
    rN\r\n
    S1\r\n
    D7\r\n
    ZT\r\n
    JB\r\n
    OD\r\n
    R175,0\r\n
    N\r\n
    b88,96,D,h4,"11111.111111/1111-13"\r\n
    A72,8,1,1,1,1,N,"11111.111111/1111-13"\r\n
    A56,8,1,1,1,1,N,"Dispositivo,hardware ou co"\r\n
    A40,8,1,1,1,1,N,"Organizações Tabajara"\r\n
    b248,96,D,h4,"11111.111111/1111-13"\r\n
    A232,8,1,1,1,1,N,"11111.111111/1111-13"\r\n
    A216,8,1,1,1,1,N,"Dispositivo,hardware ou co"\r\n
    A200,8,1,1,1,1,N,"Organizações Tabajara"\r\n
    b408,96,D,h4,"11111.111111/1111-13"\r\n
    A392,8,1,1,1,1,N,"11111.111111/1111-13"\r\n
    A376,8,1,1,1,1,N,"Dispositivo,hardware ou co"\r\n
    A360,8,1,1,1,1,N,"Organizações Tabajara"\r\n
    \r\n
    P1\r\n

     


    quinta-feira, 11 de setembro de 2008 22:05
  • Valeu Marcio,

     

    Funcionou...

     

    Abços

     

    Robinson C. Cruz

     

     

    sexta-feira, 12 de setembro de 2008 12:20

  • O problema é o seguinte, quando você utiliza o código que a Zebra disponibiliza funciona, porém não sai com acento pois o text.enconding está sendo enviado como o padrão ascii 7 bits. Para fazer funcionar você não pode utilizar a função que eles te mandam e sim colocar em outra.

    O truque está no método StartWrite descrito logo abaixo.

    Segue o exemplo:

    ZebraPrint rodrigo = new ZebraPrint();

    rodrigo.StartWrite(@"\\sistema-lib\ZebraTLP");


    rodrigo.Write("Q304,010");

    rodrigo.Write("q831");

    rodrigo.Write("I8,A,351");

    rodrigo.Write("rN");

    rodrigo.Write("S1");

    rodrigo.Write("D7");

    rodrigo.Write("ZT");

    rodrigo.Write("JB");

    rodrigo.Write("OD");

    rodrigo.Write("R175,0");

    rodrigo.Write("N");

    rodrigo.Write("A392,8,1,2,1,1,N,\"11111.111111/1111-13\"");

    rodrigo.Write("A376,8,1,2,1,1,N,\"Uno,hardware ou co\"");

    rodrigo.Write("A360,8,1,2,1,1,N,\"Organizaes Tabajara\"");

    rodrigo.Write("A232,8,1,3,1,1,N,\"11111.111111/1111-13\"");

    rodrigo.Write("A216,8,1,3,1,1,N,\"Dispositivo,hardware ou co\"");

    rodrigo.Write("A200,8,1,3,1,1,N,\"Organizaces\"");

    rodrigo.Write("A72,8,1,4,1,1,N,\"11111.111111/1111-13\"");

    rodrigo.Write("A56,8,1,4,1,1,N,\"Dispositivo,hardware ou co\"");

    rodrigo.Write("A40,8,1,4,1,1,N,\"Organizaes Tabajara\"");

    rodrigo.Write("P1");

    rodrigo.EndWrite();

    

    

    public class ZebraPrint

    {

    private const int GENERIC_WRITE = 0x40000000;

    private const int OPEN_EXISTING = 3;

    private const int FILE_SHARE_WRITE = 0x2;

    private StreamWriter _fileWriter;

    private FileStream _outFile;

    private int _hPort;

    /// <summary>

    /// Structure for CreateFile. Used only to fill requirement

    /// </summary>

    [StructLayout(LayoutKind.Sequential)]

    public struct SECURITY_ATTRIBUTES

    {

    private int nLength;

    private int lpSecurityDescriptor;

    private int bInheritHandle;

    }

    [DllImport("kernel32", EntryPoint = "CloseHandle", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]

    //Define Win32 functions

    private static extern int CloseHandle(int hObject);

    [DllImport("kernel32", EntryPoint = "CreateFileA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]

    private static extern int CreateFile(string lpFileName, int dwDesiredAccess, int dwShareMode, [MarshalAs(UnmanagedType.Struct)]

    ref SECURITY_ATTRIBUTES lpSecurityAttributes, int dwCreationDisposition, int dwFlagsAndAttributes, int hTemplateFile);

    /// <summary>

    /// This function must be called first. Printer path must be a COM Port or a UNC path.

    /// </summary>

    public void StartWrite(string printerPath)

    {

    SECURITY_ATTRIBUTES SA = default(SECURITY_ATTRIBUTES);

    IntPtr hPortP = default(IntPtr);

    //Dim retval As Integer

    //Create connection

    _hPort = CreateFile(printerPath, GENERIC_WRITE, FILE_SHARE_WRITE, ref SA, OPEN_EXISTING, 0, 0);

    //Get unsafe pointer

    hPortP = new IntPtr(_hPort);

    //convert Integer to IntPtr

    //Create file stream

    _outFile = new FileStream(hPortP, FileAccess.Write);

    //Create stream writer

    _fileWriter = new StreamWriter(_outFile,System.Text.Encoding.Default);

    //_fileWriter = new StreamWriter(_outFile,System.Text.Encoding.GetEncoding("ISO-8859-1"));


    // ISO 8859-1

    }

    /// <summary>

    /// This will write a command to the printer.

    /// </summary>

    public void Write(string rawLine)

    {

    _fileWriter.WriteLine(rawLine);

    }

    /// <summary>

    /// This function must be called after writing to the zebra printer.

    /// </summary>

    public void EndWrite()

    {

    //Clean up

    _fileWriter.Flush();

    _fileWriter.Close();

    _outFile.Close();

    CloseHandle(_hPort);

    }

    Atenciosamente,

    rodrigo@wpage.com.br

    sexta-feira, 29 de abril de 2011 14:31
  • Opa. 

    Estou com o mesmo problema, porém utilizei o comando I8,A,351 mas nãso resolveu meu problema...

    Passou a imprimir diferente, mas ainda errado... segue meu código: 

    Private Sub escreveEtiqExp(ByVal alvo As Object, ByVal dados As DataTable)
        With dados.Rows(0)
          alvo.writeLine("I8,A,351")
          alvo.writeLine("N")
          alvo.WriteLine("A080,030,0,3,2,2,N," & Chr(34) & "CONTRATO DE EXPERIÊNCIA" & Chr(34))
          alvo.WriteLine("A080,070,0,3,1,1,N," & Chr(34) & "Admitido em " + Format(CDate(.Item("datAdm")), "dd/MM/yyyy") + " à título de experiência " & Chr(34))
          alvo.WriteLine("A080,090,0,3,1,1,N," & Chr(34) & "durante 45 dias, podendo ser prorrogado" & Chr(34))
          alvo.WriteLine("A080,110,0,3,1,1,N," & Chr(34) & "por mais 45 dias, conforme Art. 443, 2 da CLT." & Chr(34))
          alvo.writeline("P1")
          DirectCast(alvo, StreamWriter).Flush()
        End With
      End Sub

    E o resultado produzido:

    CONTRATO DE EXPERIÊNCIA

    Alguém sabe como resolver isso? Desde já obrigado.

    Att,

    sexta-feira, 29 de novembro de 2013 12:12