Impressão Flex / Impressora Matricial não funciona

103 views
Skip to first unread message

KernelPanic AS3

unread,
Jan 5, 2010, 9:25:41 AM1/5/10
to flexdev
Bom dia pessoal, estou quebrando a cabeça com este problema faz tempo,
é a hora de pedir ajuda e compartilhar conhecimentos rsrsrs, estou no
flex desde a versão 1.5, entretanto não tinha um grupo flex bacana
naquele tempo.

Estou confeccionando um programa de automação comercial, um controle
de estoque simples, preciso usar uma impressora matricial, no meu caso
uma Epson LX-300+, até aí tranquilo, o problema está quando envio a
impressão a impressora, esta comprime a área imprimível totalmente
para esquerda, deixando o lado direito na cor verde (background padrão
do flex).

Já tentei fazer de tudo, usando a classe FlexPrintJob independente da
escala usada não vai (FILL_PAGE, MATCH_HEIGHT, MATCH_WIDTH, NONE,
SHOW_ALL). Vasculhando na internet encontrei um brother que estava com
este mesmo problema mas com uma impressora jato de tinta, e ele
corrigiu o problema tacando escala na impressão assim:

...
var printJob:FlexPrintJob = new FlexPrintJob();
paginaPrint.width = printJob.pageWidth;
paginaPrint.height = printJob.pageHeight;
paginaPrint.scaleX = paginaPrint.scaleY = 1.8;
printJob.addObject(paginaPrint, FlexPrintJobScaleType.NONE);
...

É uma técnica boa deve ter funcionado pra ele, só que no meu caso
utilizando essa técnica ganho 4 páginas em branco de brinde
kekekekekeke, dá vontade de arrancar os cabelos. Fiz o seguinte, criei
um VBox com fundo cinza e fui imprimindo até achar no olhometro mesmo
uma escala bacana, encontrei a 1.7, mesmo assim ganho as folhas em
branco de brinde, e ainda tem um detalhe! quando você altera a escala
de um componente os filhos deste alteram também, inclusive as
posicões :(, deixando seu relatório todo desorganizando.

O que me dá mais raiva é que quando você imprime em arquivo funciona
normal, e se você pegar esse arquivo e imprimir funciona normal
também. Agora se imprimir dentro da aplicação flex ocorre o problema.

Por favor peço ajuda :( . Ao menos alguma luz...!!!!
Um abraço

Observações:
* (printAsBitmap = false) o mesmo problema.
* em outras impressoras jato de tinta ou laser funciona sem nenhum
problema :D.
* este problema não foi testando em nenhuma impressora matricial,
exceto a Epson LX-300+.
* já foi testado em outra impressora Epson LX-300+ e apresenta o
mesmo problema.
* IE, Firefox, Windows 7 e XP, o mesmo problema.
* estou usando o flash player 10 atualizado.
* driver padrão do win7, winxp e fabricante testados.
* nas configurações do epron da impressora nenhuma opção que possa
afetar esse problema, pelo menos é o que acho rsrsrs.

Epron da minha LX-300+
Comprimento de página para o tractor - 11"
Avanço sobre o picotado - Desativado
Corte automático de papel - Desativado
Avanço automático de linha - Desativado
Direção de impressão - Bidirecional
Emulação - ESC/P
Forma do zero - 0
Prova de alta velocidade - Ativado
Modo de Interface - Automático
Período de espera - 10 segundos
Velocidade - 19200bps
Paridade - Nenhuma
Comprimento da palavra - 8bit
Modo bidirecional do I/F paralelo - Ativado
Modo de pacote - Automático
Tabela de caracteres - PC 437
Jogo de caracteres internacional - Itálico E.U.A
Intervalo de alimentação manual - 1.5 segundos
Alarme - Ativado
Auto CR (IBM 2380 Plus) - Desativado
Tabela de caracteres IBM - Tabela2

Foto para ter uma noção do problema:
http://e-jovemce.sdserver8.com/offline/edinho/snap1.jpg
(impressão feita de outro programa o flexreport -
http://www.kemelyon.com/flexreport/0_2rc1/)

Rubem Oliveira

unread,
Jan 5, 2010, 9:45:05 AM1/5/10
to fle...@googlegroups.com, thiago...@gmail.com
O velinho, não fui muito a fundo, mas ut usa alguma linguagem em
backend? junto com o flex? Se usar um flex com Java pode usar um
applet pra isso... segue algumas referencias... mas tem que achar a
melhor forma...

http://groups.google.com.br/group/flexdev/browse_thread/thread/35eddac2fe70f71/fe854331ba58110c?lnk=gst&q=Impressoras+fiscais+(ECF)+e+Leitores+Biom%C3%A9tricos&pli=1

ou

http://groups.google.com/group/air-brasil/browse_thread/thread/544cfd7981adc34d/4c01fd0e325990ab?pli=1


--
Att.
Rubao
Banda Extrema Urgência
www.extremaurgencia.com.br


2010/1/5 KernelPanic AS3 <thiago...@gmail.com>:

> --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para fle...@googlegroups.com
> Para sair da lista, envie um email em branco para flexdev-u...@googlegroups.com
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev

--
Att.
Rubao
Banda Extrema Urgência
www.extremaurgencia.com.br

KernelPanic AS3

unread,
Jan 5, 2010, 10:09:24 AM1/5/10
to flexdev
Estou trabalhando somente com o flex mesmo brother, uso o apache só
para distribuir o sistema para os clientes. Uso o assql - maclema para
se conectar no banco.

Estava trabalhando um uma impressora laser aí então estava tudo a mil
maravilhas até testar na matricial :(, entretanto os relatórios e
impressões em geral do sistema já estão prontas, teria que passar tudo
pra java e configurar outra conexão no banco com ele, no caso, dessa
forma seria melhor usar somente java logo.

Valeu pela luz, o jeito vai ser abandonar mesmo o flex por enquanto se
não conseguir fazer :(

Abraço

PrintScreen do sistema:
http://e-jovemce.sdserver8.com/offline/edinho/app.jpg

Stefan Horochovec

unread,
Jan 5, 2010, 10:54:19 AM1/5/10
to fle...@googlegroups.com
Ola

Não podemos confundir o objetivo do Flex.

Flex não foi feito para comunicar-se com impressoras matriciais e impressoras térmicas que utilizem linguagens especificas.

Porque linguagens especificas?

As impressoras matriciais entendem comandos para quebra de linha, voltar carro de impressão, ajuste de papel, negrito, itálico, etc. E as térmicas geralmente trabalham com as linguagens ZPL criada eu acho pela Zebra. Por isso quando mandamos um PDF para uma impressora matricial demora horas para imprimir.

Geralmente para isso utilizamos uma linguagem back-end para comunicar-se com a impressora na forma que ela entende, ex: No java um applet contorna facilmente esta situação.

O fato que Flex tb não foi feito para conectar-se diretamente com um banco de dados conforme ja foi comentado em outro email acima. O que eu vejo é que temos alguns problemas conceituais de uso da tecnologia.

Esse assunto de Flex se conectar com banco de dados já foi muito discutido na lista, e creio que nem vale a pena discutir mais, o que vejo é que assunto de impressoras matriciais caminha para o mesmo lado.

Quer ter uma solução que funcione muito bem? Desenvolva um Applet em Java ou um ActiveX e se comunique direto com a impressora e não tenha problemas de lentidão ou coisas parecidas.

Rolou em uma outra thread um exemplo que alguem em uma NFe apenas colocava os textos no PDF para que a impressão fosse um pouco mais rápida, até funciona, mas acredito que visualmente essa solução não seja muito agradável para o usuário final.

A muito tempo atrás escrevi um artigo no meu blog comentando sobre o uso de applets com impressora matricial. Espero que possa contribuir em algo: http://www.horochovec.com.br/blog/2008/03/27/java-e-as-impressoras-matriciais/

Um abraço

-- 
Stefan Horochovec
Engenheiro de Software
Adobe User Group Manager - FlexDuck
Blog: http://www.horochovec.com.br/
Use Java, Flex e Linux
2010/1/5 KernelPanic AS3 <thiago...@gmail.com>

--

KernelPanic AS3

unread,
Jan 5, 2010, 11:16:50 AM1/5/10
to flexdev
Então meu caro Stefan Horochovec, entendi perfeitamente seu comentário
e você tem razão a todos os argumentos, porém não quero usar os
comandos específicos da impressora, somente quero enviar a impressão,
quando estou no windows7 por exemplo mando imprimir um relatorio do
flex em documento xps, e deste documento xps mando imprimir e funciona
corretamente.

Se estivesse tentando ajustar o relatório como fazíamos antigamente em
clipper, onde tínhamos 80 colunas para ajustar, tranquilo... mas não
quero isso. Simplismente quero imprimir na impressora e o flex achata
a impressão.

Uso sockets no flex há bastante tempo, o próprio pessoal do fórum da
adobe me orientou a usar porque mexo muito com programas locais e
preciso de uma conexão com o banco de dados muito rápida.

Outro fato intrigante também é a escala do documento, que quando
aumentada encaixa certinho na impressora, porém ganho páginas extras
em branco, tirando essas páginas em branco já resolveria meu
problema :).

KernelPanic AS3

unread,
Jan 5, 2010, 11:25:30 AM1/5/10
to flexdev
Nesse blog achei um problema parecido um indiano mandava imprimir só
que a impressora imprimia menor:

http://old.nabble.com/-flex_india:21331--problems-scaling-and-printing-canvas-td22950038.html

Abraços

Reply all
Reply to author
Forward
0 new messages