AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1787934
Accepted
Jose Lopez
Jose Lopez
Asked: 2023-06-08 11:11:02 +0800 CST2023-06-08 11:11:02 +0800 CST 2023-06-08 11:11:02 +0800 CST

Imprimindo diretamente na rede da minha impressora Deskjet 2752e usando conexão TCP

  • 772

Estou encontrando dificuldades ao tentar imprimir texto simples usando PCL em Java com minha impressora Deskjet 2752e. A impressora suporta HP PCL 3 GUI, HP PCLm (HP Apps/UPD) e URF (AirPrint) 1. Apesar de várias tentativas e variações do código PCL, não consegui obter uma impressão bem-sucedida. Mesmo o envio de texto sem formatação resulta em nenhuma resposta da impressora.

Meu objetivo é enviar um trabalho de impressão diretamente para minha rede de impressoras por meio de dados brutos da porta 9100, com a capacidade de posicionar o texto usando as coordenadas x e y, se possível. Estou desenvolvendo um aplicativo Android que pode imprimir texto sem solicitar ao usuário as configurações de impressão ou sair do aplicativo. É crucial que o aplicativo envie de forma automática e eficiente os dados necessários para a impressora e inicie o processo de impressão imediatamente. Como único usuário do aplicativo, pretendo simplificar a experiência de impressão e eliminar solicitações desnecessárias, tornando o aplicativo mais rápido e eficiente. Portanto, a estrutura de impressão do Android não é uma opção

Aqui está o último código com o qual tenho trabalhado:


private void sendPrintJob() {
    System.out.println("Connecting to the printer...");
    try (Socket socket = new Socket("192.168.0.6", 9100)) {
        System.out.println("Connected.");

        DataOutputStream out = new DataOutputStream(socket.getOutputStream());
        out.write(generatePCL3GUI().getBytes());
        out.flush();
        out.close();

        System.out.println("Print job successfully sent.");
    } catch (Exception e) {
        System.out.println(e);
    }
}

public String generatePCL3GUI() {
    StringBuilder pclCode = new StringBuilder();
    
    pclCode.append("\u001B%-12345X@PJL JOB\r\n");
    pclCode.append("@PJL ENTER LANGUAGE=PCL3GUI\r\n");
    
    pclCode.append("\u001B*s0M"); // Set color mode to monochrome
    pclCode.append("\u001B*t300R"); // Set resolution to 300 dpi
    pclCode.append("\u001B*r0F"); // Set orientation to portrait

    
    pclCode.append("\u001B(8U"); // Select font: Courier New
    pclCode.append("\u001BE"); // Start of the print job
    pclCode.append("\u001B&a100H"); // Set position (x=100, y=100)
    pclCode.append("Hello, world!\r\n"); // Print text
    
    pclCode.append("\u001B%-12345X@PJL EOJ\r\n");

    return pclCode.toString();
}

insira a descrição da imagem aqui

java
  • 1 1 respostas
  • 63 Views

1 respostas

  • Voted
  1. Best Answer
    hdhondt
    2023-06-09T20:10:24+08:002023-06-09T20:10:24+08:00

    Infelizmente não há solução para o seu problema. O motivo é muito simples: o PCL3 não oferece suporte à impressão de texto sem formatação nem a nenhum dos comandos PCL5 que você está enviando para ele com seu código. A impressora simplesmente ignorará qualquer coisa, exceto o tipo de dados que espera. Portanto, todo o seu esforço "resulta em nenhuma resposta da impressora".

    PCL3 não tem nada em comum com PCL5 ou PCL6. Enquanto o PCL5/6 envia comandos para a impressora, que são convertidos em pixels pelo processador da impressora, o PCL3 é um protocolo no estilo GDI, que exige que o computador host converta a página em pixels da impressora. São esses dados raster, no formato correto, que a impressora espera do host.

    O PCLm deve ser um subconjunto do formato PDF, mas, novamente, ele suporta apenas dados raster. Então, novamente, seu software precisa converter os dados em pontos no papel.

    Não sei por que a HP usa o apelido PCL para isso. Só posso presumir que eles querem aproveitar o sucesso do PCL5/6 para vender impressoras mais baratas.

    A única maneira realista de usar isso (ou qualquer outra impressora GDI) é instalando o driver do driver fornecido pelo fabricante.

    Se você não conseguir usar o driver correto, sua única opção é investir em uma impressora compatível com PCL5. Eles custam um pouco mais do que as impressoras GDI. No entanto, por não muito mais do que sua impressora atual, você pode obter uma laser monocromática com suporte a PCL5. Isso também evitaria todos os problemas de entupimento da cabeça com jatos de tinta e, se você pular a marca HP, escaparia da prisão de consumíveis da HP.

    • 1

relate perguntas

  • A geração do Apache Maven falha ao criar o projeto usando o comando fornecido no site oficial

  • ResourceException: o nome da classe está errado ou o caminho de classe não está definido para MysqlDataSource

  • Não é possível compilar o Java após a reinstalação do Visual Studio Code: “NameOfMyClass foi compilado por uma versão mais recente do Java Runtime”

  • jEnv está mexendo com o VSCode Java Extension Pack

  • O teste instrumentado do Android Studio falha com "DerInputStream.getLength(): lengthTag=109, muito grande."

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Vickel O Firefox não permite mais colar no WhatsApp web? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve