Bug em SETPRINTQUALITY() + SETCOLOR() da Win32prn()?

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Bug em SETPRINTQUALITY() + SETCOLOR() da Win32prn()?

Mensagem por Eolo »

O primeiro cenário:
a) estações XP (todas com 100% de Update), acessando servidor Win2003 (idem) via Conexão de Área de Trabalho Remota (local ou via net/NO-IP).
b) programa feito com xHarbour 1.0.0 + GTWVT (o básico do básico: só para aumentar o número de linhas e melhorar a aparência das cores normais do console).
c) impressão via Win32prn(), usando a printer default local.
d) impressão em preto RGB(0,0,0) ou parte em preto e parte em vermelho RGB(255,0,0).
e) impressora HP 3745, driver atualizado, conectada a uma das estações.

Mando imprimir usando cada uma das 4 opções do método SETPRINTQUALITY() e todas elas (de -1=rascunho até -4=melhor qualidade) funcionam perfeitamente. Show de bola.


O segundo cenário:
a) igual acima
b) igual acima
c) igual acima
d) igual acima
e.1) impresssora HP D2460, driver atualizado, conectada a uma das estações
ou...
e.2) impresssora HP F4180, driver atualizado, conectada a uma das estações

Mando imprimir usando cada uma das 4 opções do método SETPRINTQUALITY(), e aí o Ghost aparece.


A - Impressão em preto
. todas as opções -1, -2, -3 e -4 funcionam perfeitamente. Show de bola.

B - Impressão em preto e vermelho
. as opções -1, -2 e -4 funcionam perfeitamente. Show de bola.
. quando seto a opção -3, a impressora (tanto a D2460 quanto a F4180) nem respondem. O job aparece no gerenciador de impressão, mas aparece rapidamente e some. Nada é impresso.


Alguém tem alguma sugestão? Será que é Ghost mesmo (como diria o Anderson do CAClipper) ou o que?
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Re: Bug em SETPRINTQUALITY() + SETCOLOR() da Win32prn()?

Mensagem por Eolo »

Ah, uma "curiosidade":

a) a HP 3745 tem 5 opções de impressão (rascunho rápido, normal rápido, normal, ótima e máxima), contra 4 opções da SETPRINTQUALITY(), mas a coisa funciona normal, preto/branco ou colorido;

b) já as outras printers (D2460 e F4180) têm 4 opções (rascunho rápido, normal rápido, normal e melhor), o mesmo número de opções da SETPRINTQUALITY(), mas a -3, quando a cores, não funciona...
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: Bug em SETPRINTQUALITY() + SETCOLOR() da Win32prn()?

Mensagem por Hasse »

Boa noite Eolo.

Eu também já havia detectado esta dificuldade, não exatamente como a comentada. Relatei o fato no thread "Win32prn para iniciantes".

Tenho até um caso em que o SETPRINTQUALITY() em nada afeta o resultado na impressora.

Você já tentou alternar as impressoras para ver se pode ser alguma configuração na estação, ou se realmente é um conflito com uma determinada impressora (marca / modelo)...

Não sei se isto pode ser um bug da Classe Win32prn() ou do xHarbour, ou ainda algum detalhe ainda não observado pelos colegas que estão desenvolvendo essa Classe.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Re: Bug em SETPRINTQUALITY() + SETCOLOR() da Win32prn()?

Mensagem por Eolo »

Olá, Hasse.

Eu já tinha visto o post que vc mencionou, que aliás é fonte de consulta pra mim, mas resolvi abrir este tópico para tentar sim achar alguma solução mas, principalmente, para apontar o provável bug para o pessoal.

Sim, testei as impressoras em diferentes estações, imprimindo a partir do próprio PC onde a impressora está conectada, imprimindo a partir de outro PC da rede local ou ainda imprimindo via TS: dá sempre o mesmo resultado para as impressoras D2460 e F4180: a opção -3, somente quando a cores, por alguma razão "mata" o job de impressão.

Veja bem, não é que a impressão sai errada: ela simplesmente não sai na impressora! E sem dar nenhuma mensagem de erro.

Já usando uma HP 3745, com as mesmas opções acima (incluindo o -3, a cores), a impressão sai normal.

Um outro detalhe que acabou passando: a impressão a que me refiro é uma etiqueta para produtos e usa as fontes EAN-13 e ARIAL ROUNDED MT BOLD (TTF), parte em preto e parte em vermelho. Bem, uma dessas fontes poderia ser a causadora da encrenca, mas eu não acredito muito nisso, porque o erro acontece com um valor intermediário (-3). Se fosse nos limites (-1 ou -4) até teria alguma lógica... Bem, tentei substituir a citada fonte por uma fonte 'padrão' do Windows: mesmo resultado.

Veja, a seguir, uma parte do código fonte (só o que interessa, pra não ficar muito extenso). Não tem nada de muito especial nele, é puro arroz-com-feijão.

Código: Selecionar todos

#define  RGB_BLACK       RGB(0,0,0)
#define  RGB_RED         RGB(255,0,100)

oPrinter:setPrintQuality(-2)

* imprime produto
oPrinter:setColor(RGB_BLACK)
oPrinter:SetFont('ARIAL ROUNDED MT BOLD', 18, {3,25},0 )
x=oprinter:mm_to_posX(valorx)
y=oprinter:mm_to_posY(valory)
setpos(x,y)
oPrinter:TextOutat(x,y,nprod->ndesc,.f.,.f.,1)

* imprime valor
oPrinter:setColor(RGB_RED)
oPrinter:SetFont('ARIAL ROUNDED MT BOLD', 54.5, {3,9}, 700 )
x=oprinter:mm_to_posX(valorx)
y=oprinter:mm_to_posY(valory)
setpos(x,y)
oPrinter:TextOutat(x,y,"R$"+tran(nprod->nprec,"@E 9,999.99"),.f.,.f.,1)

* imprime EAN13
oPrinter:setColor(RGB_BLACK)
oPrinter:SetFont('EAN-13', 15, {3,25} )
x=oprinter:mm_to_posX(valorx)
y=oprinter:mm_to_posY(valory)
setpos(x,y)
oPrinter:TextOutat(x,y,alltrim(str(nprod->nbarr)),.f.,.f.,0)
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: Bug em SETPRINTQUALITY() + SETCOLOR() da Win32prn()?

Mensagem por Hasse »

Realmente parace que é, como você dia, puro feijão-com-arroz, ou arroz-com-ovo-frito...

É... Mistério... Mistério puro...

A solução deste mistério também me interessa, e muito...

Vamos insistir, e certamente teremos uma solução... Esta solução deixará a Classe "redondinha".

Boa sorte para todos nós.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Bug em SETPRINTQUALITY() + SETCOLOR() da Win32prn()?

Mensagem por sygecom »

Bom fiz uns teste aqui com setPrintQuality, porem aqui deu tudo certo, porem só tenho uma impressora para testar. O negocio é passar esse erro para o desenvolvedor da Win32prn, Peter Rees, email: peter< AT >rees.co.nz
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Bug em SETPRINTQUALITY() + SETCOLOR() da Win32prn()?

Mensagem por sygecom »

Dei uma futricada no MSDN do Windows e achei isso:
http://msdn.microsoft.com/pt-br/library/aa911419.aspx

Isso me levou até a WINGDI.CH que se encontra em "\xharbour\contrib\what32\include"

#define DEFAULT_QUALITY 0
#define DRAFT_QUALITY 1
#define PROOF_QUALITY 2
#define NONANTIALIASED_QUALITY 3
#define ANTIALIASED_QUALITY 4

Só não tenho como testar hj aqui, somente PDFCREATOR, vou tentar testar amanha na minha HP 1410.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Bug em SETPRINTQUALITY() + SETCOLOR() da Win32prn()?

Mensagem por sygecom »

Outro link relacionado ao assunto:
http://support.microsoft.com/kb/197076/pt
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder