Class Printer

java.lang.Object
br.com.intersys.systextil.print.Printer
Direct Known Subclasses:
DBPrinter

public class Printer extends Object
Permite a impressão de qualquer arquivo de texto em qualquer saída disponibilizada pelo sistema operacional. Essa saída pode ser o endereço de um arquivo ou de um dispositivo de impressão.

Ainda não foi testado o funcionamento em caso de acesso simultâneo ao dispositivo de saída. Não sabemos se ocorre erro imediato ou se o sistema operacional gerencia uma fila.

Author:
sergio
  • Constructor Details

    • Printer

      public Printer(String outputFileName)
      Inicializa uma impressora anexada à saída informada, que pode ser o endereço de um arquivo ou de um dispositivo de impressão.
      Parameters:
      outputFileName - o endereço para o dispositivo de saída
  • Method Details

    • getOutputFileName

      public String getOutputFileName()
      Retorna o endereço do arquivo ou do dispositivo ao qual esta impressora está anexada.
      Returns:
      o endereço do dispositivo
    • getPrinterName

      public String getPrinterName()
      Retorna o nome (apelido) da impressora.
      Returns:
      o nome da impressora
    • getPrintWriter

      public PrintWriter getPrintWriter()
      Retorna o PrintWriter associado a esta impressora para que alguma aplicação imprima diretamente nela.

      A codificação de caracteres a ser usada será adequada ao tipo de impressora. No caso de impressora para caminho local é usada a codificação padrão do sistema. Nos outros casos, é fixa a codificação do Windows, exceto no caso da DBPrinter, que funciona diferente.

      Returns:
      um novo PrintWriter associado a esta impressora
      See Also:
    • getPrintWriter

      public PrintWriter getPrintWriter(Charset charset)
      Retorna o PrintWriter associado a esta impressora para que alguma aplicação imprima diretamente nela.
      Parameters:
      charset - codificação a usar para enviar texto a esta impressora. No caso de DBPrinter, a codificação não é aplicada. Ver.
      Returns:
      um novo PrintWriter associado a esta impressora
      See Also:
    • print

      public void print(Reader inputReader)
      Imprime os caracteres de qualquer Reader nesta impressora. Ao final da impressão, o Reader é fechado.
      Parameters:
      inputReader - o leitor de dados para imprimir nesta impressora
    • print

      public void print(File inputFile)
      Imprime um arquivo nesta impressora.
      Parameters:
      inputFile - o arquivo a imprimir
    • printFile

      public void printFile(String inputFileName)
      Imprime um arquivo nesta impressora.
      Parameters:
      inputFileName - o caminho do arquivo
    • print

      public void print(String string)
      Imprime qualquer texto nesta impressora.
      Parameters:
      string - o texto a imprimir
    • print

      public void print(String string, Charset charset)
      Imprime qualquer texto nesta impressora com uma codificação definida.

      Faz o mesmo que:

       print(new StringReader(string), getPrintWriter(charset));
       

      A motivação para usar este método é a necessidade de imprimir em determinadas impressoras de etiquetas em determinada codificação específica, por exemplo CP850.

      Parameters:
      string - o texto a imprimir
      charset - codificação a usar para enviar texto a esta impressora.
    • getList

      public static Printer[] getList(AppConnection cn, int codEmpresa, String usuario)
      Retorna a lista de impressoras disponíveis para um usuário. A impressora padrão é a primeira da lista.

      Todas as impressoras desta lista são automaticamente reconhecidas no UNIX ou Linux como correspondendo a um dispositivo de impressão que deve estar mapeado no CUPS.

      Parameters:
      cn - a conexão ao banco de dados
      codEmpresa - o código da empresa
      usuario - o usuário
      Returns:
      as impressoras disponíveis para esse usuário
    • setDriver

      public void setDriver(Driver driver)
    • getDriver

      public Driver getDriver()
    • set

      public void set(Setting setting)
    • set

      public void set(Setting[] settings)
    • reset

      public void reset()
      Remove todas as configurações globais desta impressora lógica. Ficam valendo as configurações atuais da impressora real.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getLabelsPrinter

      public static Printer getLabelsPrinter(AppConnection conn, int codEmpresa, String usuario, String printerName)
      Obtém a impressora de etiquetas.
      Parameters:
      conn - a conexão ao banco de dados
      codEmpresa - o código da empresa
      usuario - o usuário
      printerName - o nome da impressora atribuída ao usuário
      Returns:
      as configurações para a impressora informada
    • getPrinter

      public static Printer getPrinter(String printerName, String outputPath, Credentials credentials)
      Obtém a impressora a partir de parâmetros quaisquer.
      Parameters:
      printerName - o nome da impressora, usado, entre outras coisas, para a impressão através da extensão do navegador Chrome.
      outputPath - o caminho da impressora; se for "LOCAL", será encaminhado para a extensão do navegador Chrome.
      credentials - as credenciais para a impressão por Samba, ou nulo. Para usar Samba, é necessário informar este objeto, mesmo contendo credenciais vazias.
      Returns:
      a impressora pronta para imprimir
    • printLabels

      public static void printLabels(AppConnection conn, Mdi mdi, File labelsFile)
      Conveniência que imprime o arquivo na impressora de etiquetas do usuário. O arquivo não é eliminado.
      Parameters:
      conn - a conexão ao banco de dados
      mdi - a MDI
      labelsFile - o arquivo a enviar para a impressora
    • printLabels

      public static void printLabels(AppConnection conn, Mdi mdi, File labelsFile, String printerName)
      Conveniência que imprime o arquivo numa impressora de etiquetas alternativa para o usuário.

      Se não for informada uma impressora válida, imprime na impressora padrão do usuário, com printLabels(AppConnection, Mdi, File).

      O arquivo não é eliminado.

      Parameters:
      conn - a conexão ao banco de dados
      mdi - a MDI
      labelsFile - o arquivo a enviar para a impressora
      printerName - o nome da impressora atribuída ao usuário
    • findPrinter

      public static Printer findPrinter(AppConnection conn, Mdi mdi, String printerName)
      Procura a impressora de etiquetas informada, e se não existir obtém a impressora de etiquetas padrão do usuário.
      Parameters:
      conn - a conexão ao banco de dados
      mdi - as credenciais do usuário
      printerName - o nome da impressora que se espera encontrar
      Returns:
      a impressora obtida
    • printLabels

      public static void printLabels(Printer impressoraEtiquetas, File labelsFile)
      Conveniência que imprime o arquivo na impressora de etiquetas.

      O arquivo não é eliminado.

      Parameters:
      impressoraEtiquetas - a impressora de etiquetas
      labelsFile - o arquivo a enviar para a impressora
    • dbPrinterOutputStream

      public static Supplier<OutputStream> dbPrinterOutputStream(String printerName)
      Fornece um OutputStream para gravar dados binários provenientes de um JasperPrint em uma impressora informada.

      Quando for usado, ele é aberto, e é preciso fechá-lo para efetivar a gravação.

      Internamente, abre uma conexão ao banco de dados do sistema.

      Destina-se especialmente à impressão de etiquetas usando JR.Print.saveJasperPrint(Supplier).

      Parameters:
      printerName - o nome da impressora, geralmente mdi.impressora_padrao_etiqueta
      Returns:
      o objeto que fornece o OutputStream aberto
    • dbPrinterOutputStream

      @Deprecated public static Supplier<OutputStream> dbPrinterOutputStream(String printerName, Connection conn)
      Faz o mesmo que dbPrinterOutputStream(String).

      Antes usava a conexão recebida para efetivar a gravação no banco de dados. Agora usa uma conexão obtida internamente do contexto.

      Parameters:
      printerName - o nome da impressora, geralmente mdi.impressora_padrao_etiqueta
      conn - a conexão contendo a transação atual do formulário (não é usada).
      Returns:
      o objeto que fornece o OutputStream aberto