Impressão do Clipper em porta USB.

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Estive lembrando sobre o PRINTER.EXE, clique aqui para baixá-lo senão me engano do autor Guionardo Furlan. Este aplicativo imprime em dois modos gráfico e para DOS. E tem algumas particularidades muito interessantes. Eu tentei localizar esse autor (mas não conseguí), para dar algumas sugestões para que possa ser implementadas. Nesse link que indiquei (impres.zip) vem um MANUAL.TXT onde ensina como imprimir com todas as opções. E achei interessante para você Marcos dar uma analisada e ver se seria conveniente aplicar a seguinte sugestão no seu aplicativo:

O recurso das TAGs no seu aplicativo é muito prático, muito fácil de utilizar e é voltado mais para usuário final. Mas colocando 5 opções de formatações, estarias limitando a essas formatações apenas e acho que poderia ser utilizado também de uma forma mais técnica e específica para determinar as caracteristicas de formatação das fontes, ampliando ainda mais os recursos. Imagine o usuário (de nível avançado) podendo passar as características de formatação (no arquivo de impressão) em que definiria o NOME da fonte, TAMANHO da fonte e CARACTERÍSTICAS da fonte (Negrito e Sublinhado). Como farias isso ?

Criarias outras TAGs, mas estas são FIXAS e TAGs INTERNAS que atendesse os seguintes recursos:

A) Formato da fonte (tipo, tamanho e modo)
B) Tamanho da folha (A4, Carta, A5, Oficio)
C) Orientação (Retrato ou Paisagem)
D) Modo de impressão (Rascunho, Normal ou Otimizado)

Para cada propósito, fazer uma TAG INTERNA. Como será definido (isto poderia ser discutido), a minha sugestão exemplo seria:

A) Nesta tag interna <FONTE(1,10,N,N)> cada parâmetro tem a seguinte finalidade:

- O primeiro parâmetro, refere-se ao número corrrespondente ao nome da fonte. Ao exemplo do aplicativo PRINTER.EXE, tem 3 tipo de fontes:

1. Courier New
2. Arial
3. Times New Roman

- O segundo parâmetro. refere-se ao tamanho em cpi e eu não sei se isto é fixo ou é conforme cada impressora. Mas acredito que isto nao é problema, pois se o tamanho de determinada fonte, não exista; simplesmente a interpretação não irá acatar.

- O terceiro parâmetro, servirá para definir se é NEGRITO (S ou N).

- O quarto parâmetro, servirá para definir se é SUBLINHADO (S ou N).

B) <FOLHA(A4)> O tamanho da folha, creio que poderia ser pre-fixado estes tamanhos (A4, Carta, A5, Oficio), não sei se é possível extrair as opções de tamanho para cada impressora instalada.

C) <ORIENTADO(PAISAGEM)> A Orientação da folha, pode ser fixada em (Retrato ou Paisagem)

D) <MODO(RASCUNHO)> O Modo de impressão, também pode ser fixado em (Rascunho, Normal ou Otimizado)

Exemplificando como iria ficar o meu arquivo de impressão:
<FOLHA(A4)>
<ORIENTADO(PAISAGEM)>
<MODO(RASCUNHO)>
<FONTE(1,20,S,S)>Teste de impressão de fonte Courier New de tamanho expandido, negrito e sublinhado
As características destas TAGs FIXAS que possam ter, deixo ao se critério, mas acredito que tenha que ser uniforme os caracteres que definam como TAGs. É dizer teria que ter um caracter que indique o início e outro que indique o final da TAG.

Pensei tudo isto, durante o meu auto-analise a noite. Estive a ponto de me levantar da cama para fazer esta mensagem, antes que você Marcos venha a ter um trabalho grande após a minha ultima mensagem.

Bem, espero ter exposto com clareza e ter sido bem objetivo nesses recursos que poderia ter o seu aplicativo.
Editado pela última vez por Pablo César em 06 Jul 2007 09:33, em um total de 3 vezes.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Pablo César escreveu:colocando 5 opções de formatações, estarias limitando a essas formatações apenas
Uma sugestão: deixar o programa sem qualquer formatação, mas inteligente o suficiente para abrir um banco de dados onde constariam as formatações criadas pelo usuário programador. Ele só passaria ao programa para qual impressora direcionar a tradução. Muito mais simples para o próprio Marcos, que teria apenas de criar um mecanismo de tradução simples. Se ele tiver que acatar cada pedido de inclusão de TAG, vai morrer alterando esse programa. Pelo lado do programador usuário ficaria muito mais flexível. E até se poderia formar um grupo daqui do fórum pra montar um DBF com os códigos de várias impressoras.
Inclusive, eu próprio até pensei em implementar esse mesmo esquema na WAPI. Um dos fatores que me levou a desistir foi o tempo, principalmente.
Imagine o usuário (de nível avançado) podendo passar as características de formatação (no arquivo de impressão)
Aí eu acho que piora, e muito. O Marcos vai acabar tendo que reinventar o RichText. :)

Em tempo: o Guionardo é formado em fisioterapia. É provável que nem trabalhe mais com programação.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Maligno escreveu:Ele só passaria ao programa para qual impressora direcionar a tradução. Muito mais simples para o próprio Marcos, que teria apenas de criar um mecanismo de tradução simples. Se ele tiver que acatar cada pedido de inclusão de TAG, vai morrer alterando esse programa. Pelo lado do programador usuário ficaria muito mais flexível.
Mas você não acha que os comentários adicionados anteriormente não iriam contribuir em melhoras no aplicativo atual ?
Maligno escreveu:Aí eu acho que piora, e muito. O Marcos vai acabar tendo que reinventar o RichText.
Ahhh não faça comparações... piora nada, veja que de uma certa forma passando os parâmetros direitinho, iriam servir para o uso em xHarbour.
Maligno escreveu:Uma sugestão: deixar o programa sem qualquer formatação, mas inteligente o suficiente para abrir um banco de dados onde constariam as formatações criadas pelo usuário programador. Ele só passaria ao programa para qual impressora direcionar a tradução.
Estive pensando também que poderia ser feito de uma outra forma (e isto quero analisar-lo junto com vocês). Lembra que em uma ocasião falamos se havia possibilidade de gerar arquivo na hora de interpretação e envio pro spool com os recursos do xHarbour ?. Bem, pensei (não sei se daria certo), de gerar em arquivo (mesmo sendo metafile) cada formatação de fonte possível para cada impressora (ou digamos o básico), isto é criar um arquivo para:

- [NORMAL]
- [CONDENSADO]
- [EXPANDIDO]
- [NEGRITO]

A medida que o aplicativo detecte a impressora instalada, criar um subdiretorio para cada impressora e dentro deles estaria cada arquivo contendo a sequência de comandos para impressão para as diversas finalidades. Digamos que existe uma pasta de "Impressoras" com sub-pastas para cada impressora e nessas sub-pastas, seu arquivos para tal finalidade

Na hora de querer imprimir, utilizar o aplicativo para mandar pro spool, inserindo o conteúdo daqueles arquivos.

Será que daria certo, isso ?
Maligno escreveu:E até se poderia formar um grupo daqui do fórum pra montar um DBF com os códigos de várias impressoras.
Isto ja comentei contigo e com o Leonardo por emails, sobre essa intenção. A questão que tinhamos que montar um BD que pudessem ser adicionados os comandos para cada impressora no próprio site, conforme forem aparecendo.
Maligno escreveu:o Guionardo é formado em fisioterapia. É provável que nem trabalhe mais com programação.
Você o conhece ?
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Pablo César escreveu:uma pasta de "Impressoras" com sub-pastas para cada impressora e nessas sub-pastas, seu arquivos para tal finalidade
Eu já não sou chegado em criar arquivo de configuração pra impressão. Mesmo que um só arquivo. Criar pastas então, nem pensar. Ainda acho melhor um DBF com as configurações e tags. O programa do Marcos teria que ter apenas e tão somente um mecânismo de tradução. Muito mais simples e prático.
Você o conhece ?
Não pessoalmente, mas do antigo news do UOL, há muitos anos atrás. Foi nessa época que ele criou esse utilitário, do qual, alias, nem mais me lembrava.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Maligno escreveu:Ainda acho melhor um DBF com as configurações e tags. O programa do Marcos teria que ter apenas e tão somente um mecânismo de tradução.
Caberia saber o tamanho da sequência de comandos para cada formatação. A minha sugestão é sempre fazer o armazenamento em DBF em forma caracter/BINÁRIO que ocupa menos espaço.
Maligno escreveu:Foi nessa época que ele criou esse utilitário, do qual, alias, nem mais me lembrava.
Você viu o tamanho desse PRINTER.EXE ?. É pequeno PACAS !.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Pablo César escreveu:Caberia saber o tamanho da sequência de comandos para cada formatação.
Isso é bem variável.
A minha sugestão é sempre fazer o armazenamento em DBF em forma caracter/BINÁRIO que ocupa menos espaço.
Acho que seria aconselhável primeiramente saber O QUE e de QUE FORMA será feito, antes de definir COMO será feito. O Marcos, que é o autor do programa, ainda nem se manifestou a respeito. É melhor saber primeiro o que ele acha. Lembre-se de que o timoneiro é ele. :))
Maligno escreveu:Você viu o tamanho desse PRINTER.EXE ?. É pequeno PACAS !.
Não se espante. Esse programa foi feito em VB. Precisa de run-time. :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Maligno escreveu:
Pablo César escreveu:Caberia saber o tamanho da sequência de comandos para cada formatação.
Isso é bem variável.
Mas eu dizia utilizando-se daqueles arquivo gerados e capturados para cada fim. Será que seria possível ?.
Maligno escreveu:Acho que seria aconselhável primeiramente saber O QUE e de QUE FORMA será feito, antes de definir COMO será feito.
Pois é justamente por isso que estou espondo aqui. Acho bem mais produtivo trocar ideias com os colegas.
Maligno escreveu:O Marcos, que é o autor do programa, ainda nem se manifestou a respeito. É melhor saber primeiro o que ele acha. Lembre-se de que o timoneiro é ele.
Com certeza !. Como eu ja disse na mensagem anterior: eu estou apenas querendo analisar-lo junto com vocês.

Bom com tudo isto, é que componha-se uma idéia prática, menos trabalhosa e muito, muito útil !!
Esse programa foi feito em VB. Precisa de run-time.
Ahhh claro, por isso !. E esse arquivo dinámico pegaria do SO ? Só pode ser... Microsoft e seus acessórios...
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Pablo César escreveu:Mas eu dizia utilizando-se daqueles arquivo gerados e capturados para cada fim. Será que seria possível ?.
Eu estou falando dos comandos de impressão. Tem comandos com 1 byte. Outros com 5 ou mais.
Acho bem mais produtivo trocar ideias com os colegas.
Mais ainda se o autor puder participar, já que qualquer idéia, exeqüível ou não, tem que passar por ele. Se for encontrado um modo "ideal" e ele não tiver tempo ou simplesmente não achar ideal? A palavra dele é vital.
E esse arquivo dinámico pegaria do SO ? Só pode ser... Microsoft e seus acessórios...
Na verdade não é bem assim. Se esse programa rodou na sua máquina é porque você já instalou algum outro que botou esse run-time no diretório do Windows. Caso contrário, você teria de instalar, já que esses run-times não acompanham o Windows.

Aliás, uma dica: quando quiser saber em qual ferramenta foi desenvolvido certo programa, abra-o num editor hexadecimal ou mesmo num editor de texto comum e procure por strings conhecidas: VB, Microsoft, Delphi, etc. Foi assim que fiz. Na maior parte das vezes, quando o programa não é compactado (ASPack, UPX, etc), é possível descobrir em qual ferramenta ele foi desenvolvido apenas bisbilhotando o EXE.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
filizola
Usuário Nível 3
Usuário Nível 3
Mensagens: 421
Registrado em: 19 Ago 2003 20:10
Localização: Belo Horizonte/MG

Mensagem por filizola »

alguem poderia me mandar a ultima versao do usbprint, o link nao baixa mais o arquivo..


desde já agradeço
"Um passo a frente, e já não estará mais no mesmo lugar..."
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Tche, acabei de baixar e esta funcionando :
http://www.marsoftnet.hpg.com.br/usbprint___.zip

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
MarcosV
Usuário Nível 3
Usuário Nível 3
Mensagens: 106
Registrado em: 15 Jun 2005 20:37
Localização: Sorocaba/SP

Mensagem por MarcosV »

Pablo... Maligno... Leonardo... e todos que acompanham esse post... desculpem a ausencia... dei inicio a um projeto... que pra variar... meu cliente quer pra ontem... naum to tendo tempo nem pra receber meus emails... mas assim que terminar aqui... respondo vcs e tb darei continuidade ao USBPRINT... Valew !!!!
Marcos Villela
x[H]arbour.org (CVS) | GtWvW+HwGui (CVS) | HbMake | Dbf | Rdd DbfCdx | LeToDb (CVS) (Implantando)
===============================================================
“Quem nunca dormiu à noite e acordou de repente, suando frio e chorando, chorando e
chorando? Se isso lhe aconteceu, então você foi apanhado pelo blues.” (Robert Johnson)
Sweet Home Chicago (Versão Blind Bulldog Blues): www.youtube.com/watch?v=J-V61vQTSZs
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

MarcosV escreveu:Pablo... Maligno... Leonardo... e todos que acompanham esse post... desculpem a ausencia... dei inicio a um projeto... que pra variar... meu cliente quer pra ontem... naum to tendo tempo nem pra receber meus emails... mas assim que terminar aqui... respondo vcs e tb darei continuidade ao USBPRINT... Valew !!!!
Blz...Marcos...aproveintando lah vai mais uma dica....impressão em Paisagem...

Código: Selecionar todos

IF PAISAGEM="SIM"
   oPrinter:Landscape := .T.
ELSE
   oPrinter:Landscape := .F.
ENDIF
Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

MarcosV escreveu:mas assim que terminar aqui... respondo vcs e tb darei continuidade ao USBPRINT... Valew !!!!
Ok, Sr. Marcos sucesso nesse novo emprendimento. Nós aguardaremos (eu... pra variar um pouco... ancioso... hehe) Mas tome o tempo que precisar, você é muito antencioso em responder-nos.
Leonardo escreveu:aproveitando lah vai mais uma dica....impressão em Paisagem...
Ahhhh eu cheguei primeiro, pelo visto você não leu a minha mensagem hehe.. Mas é válida a observação !
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Tche, Pablo....soh postei como funciona na classe WIN32PRN...

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Refactoring... Refactoring...

Código: Selecionar todos

oPrinter:Landscape := PAISAGEM="SIM"
Aproveitando, para quem se interessa pelo assunto, procurem no eMule ou Lphant pelo livro "Refactoring - Improving the Design of Existing Code" de Martin Fowler. É um livro quase obrigatório pra quem se interessa por engenharia de software.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Responder