Página 1 de 1
Bug em SETPRINTQUALITY() + SETCOLOR() da Win32prn()?
Enviado: 19 Dez 2008 18:14
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?
Re: Bug em SETPRINTQUALITY() + SETCOLOR() da Win32prn()?
Enviado: 19 Dez 2008 19:30
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...
Re: Bug em SETPRINTQUALITY() + SETCOLOR() da Win32prn()?
Enviado: 19 Dez 2008 21:47
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.
Re: Bug em SETPRINTQUALITY() + SETCOLOR() da Win32prn()?
Enviado: 20 Dez 2008 10:37
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)
Re: Bug em SETPRINTQUALITY() + SETCOLOR() da Win32prn()?
Enviado: 20 Dez 2008 11:02
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.
Re: Bug em SETPRINTQUALITY() + SETCOLOR() da Win32prn()?
Enviado: 21 Dez 2008 12:22
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
Re: Bug em SETPRINTQUALITY() + SETCOLOR() da Win32prn()?
Enviado: 21 Dez 2008 15:10
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.
Re: Bug em SETPRINTQUALITY() + SETCOLOR() da Win32prn()?
Enviado: 21 Dez 2008 15:22
por sygecom