HOWTO – Impressão correta na HP DeskJet 820Cxi usando Linux + CUPS + PDFCreator + Windows XP

by Luan


Posted on 20 December 2025, 20:20


Este documento descreve como obter escala correta, centralização fiel e estabilidade ao imprimir em uma HP DeskJet 820Cxi, usando Linux como host e Windows XP (em máquina virtual) apenas como conversor final e spooler, através do PDFCreator.


Esta abordagem resolve definitivamente problemas de scale down, margens incorretas e travamentos comuns ao imprimir diretamente via pnm2ppa ou USB–paralelo.

Visão geral do problema

Ao imprimir diretamente do Linux para a HP DeskJet 820Cxi, é comum observar:

  • Redução indevida da escala (shrink)
  • Margens maiores que o esperado
  • Conteúdo deslocado
  • Travamentos ao imprimir documentos grandes ou gráficos

A causa principal não é o USB, Samba ou a impressora, mas sim:

  • Margens implícitas do Generic PostScript Printer (12 pt ≈ 4,32 mm)
  • Área imprimível incorreta (ImageableArea)
  • Rasterização feita no ambiente errado

Arquitetura da solução (fluxo final)

Fluxo recomendado e validado:

Aplicação Linux → CUPS (Generic PostScript Printer com ImageableArea corrigido) → Samba → Windows XP (PDFCreator) → Windows XP (driver original HP DeskJet 820Cxi) → USB → Paralelo → Impressora

O Linux:
  • Gera PostScript com escala correta
  • Não rasteriza
  • Não aplica shrink
O Windows XP:
  • Converte PS → PDF (PDFCreator)
  • Rasteriza usando o driver original HP
  • Faz apenas spool e fluxo

Pré-requisitos

  • Linux com CUPS
  • Windows XP em VirtualBox
  • PDFCreator instalado no Windows XP
  • Driver original HP DeskJet 820Cxi instalado no XP
  • Impressora HP820 compartilhada no XP
  • Conectividade de rede host ↔ guest

Passo 1 – Configurar o Windows XP

  1. Instalar o driver original da HP DeskJet 820Cxi
  2. Instalar o PDFCreator
  3. Criar a impressora virtual PDFCreator
  4. Configurar o PDFCreator para:
  5. - Não redimensionar
  6. - Não ajustar à página
  7. - Gerar PDF temporário
  8. Compartilhar a impressora PDFCreator na rede (ex: PDFCreator)

Passo 2 – Criar a impressora no Linux (Generic PostScript)

No CUPS:

  1. Adicionar nova impressora
  2. Tipo: Generic
  3. Driver: Generic PostScript Printer
  4. NÃO usar pnm2ppa aqui
Configurações iniciais no CUPS:
  • Page Scaling: None
  • Scaling: 100%
  • Fit to Page: Off

Passo 3 – Corrigir o PPD (passo crítico)

O Generic PostScript Printer define uma margem implícita de 12 pt (~4,32 mm),
o que causa shrink automático.

Edite o PPD da impressora (geralmente em /etc/cups/ppd/):

*ImageableArea A4/A4: “0 0 595 842”
*PaperDimension A4: “595 842”

Isso define:
  • Área imprimível igual ao papel
  • Nenhuma margem implícita
  • Nenhum shrink pelo CUPS/pstops

Após editar:

sudo systemctl restart cups

Passo 4 – Conectar Linux → PDFCreator via SMB

No CUPS, configurar o Device URI da impressora como:

smb://guest@IP_DO_XP/PDFCreator

Ou com autenticação:

smb://usuario@IP_DO_XP/PDFCreator

Passo 5 – Fluxo interno no Windows XP

Dentro do Windows XP:

1. O PDFCreator recebe o job PostScript
2. Gera um PDF intermediário
3. O próprio PDFCreator envia o PDF para a HP DeskJet 820Cxi
4. O driver original HP: * Rasteriza corretamente * Aplica a geometria real da impressora * Envia PPA em blocos estáveis

Resultado obtido

Com esta abordagem:

  • Escala impressa fiel ao documento
  • Centralização correta
  • Margens iguais à impressão nativa do Windows
  • Impressão estável de PDFs grandes
  • Menor risco de travamento do USB–paralelo
  • Comportamento idêntico ao Windows “real”

Observações importantes

  • O PDFCreator respeita o bounding box recebido
  • Por isso, o ajuste do ImageableArea no PPD é essencial
  • Não use opções de “ajustar à página” em nenhum ponto do fluxo

Se ocorrer corte muito próximo da borda, usar margem mínima física:

*ImageableArea A4/A4: “5 5 590 837”

(~1,7 mm de margem real)

Conclusão

O uso do PDFCreator no Windows XP permite:

  • Centralizar toda a lógica de rasterização no driver original HP
  • Evitar limitações do pnm2ppa
  • Eliminar shrink causado por margens PostScript padrão
  • Obter fidelidade dimensional máxima

Esta é, na prática, a solução mais estável e fiel disponível hoje para a HP DeskJet 820Cxi em ambientes Linux modernos.

Status

  • Testado
  • Reprodutível
  • Estável
  • Escala e geometria corretas


Comments

Enter your comment below. Fields marked * are required. You must preview your comment before submitting it.

Name *

Email *

Website

Message *

Textile help


Search

Categories

About

I am computer engineer and MSc in Informatics graduated in Federal University of Espírito Santo. I am a programming and electronics enthusiast and I made this site to share my ideas and experiments in programming, electronics and DIY. I hope you enjoy it.

Donate: monero

452LPJcRqkhiaMdwpJSrzY1CTQ6MQMDxxQkUwDHDjBCe3Pcb6p9dHnGBZYjhZX1gHGU86W8wunHJBVDx5bk2K2aoFYwSA36

452LPJcRqkhiaMdwpJSrzY1CTQ6MQMDxxQkUwDHDjBCe3Pcb6p9dHnGBZYjhZX1gHGU86W8wunHJBVDx5bk2K2aoFYwSA36