Imprimir condensado usando WIN_PRN
Moderador: Moderadores
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
Imprimir condensado usando WIN_PRN
veja aí o conteúdo impresso do arquivo acima.
Imprimi e scannei-o para sua análise: vlw galera!
Imprimi e scannei-o para sua análise: vlw galera!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
Imprimir condensado usando WIN_PRN
Olá no meu caso, fiz assim, pois o EXE está no mesmo local do arquivo:Itamar M. Lins Jr. escreveu:Para apagar use:
ferase("seuarquivo.qualquercoisa")
Lembre-se do PATH, seu EXE pode está em uma lugar e seu arquivo em outro.
ferase("\lugar\do\arquivo\arquivo.xyz")
Código: Selecionar todos
ferase("&CLI..") // é assim mesmo? o nome do conteúdo da variável "CLI" é "0001.prn" 4/6/15wGrato,
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7929
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Imprimir condensado usando WIN_PRN
Vc deveria de testar antes e perguntar depois.
Mas a ordem é a que postei.
Portanto SET DEVICE TO PRINTER respeita o comando SET PRINTER TO, sem "SET PRINTER TO" ou FORA da ORDEM ele vai assumir LPT1
Itamar M. Lins Jr.
Mas a ordem é a que postei.
Código: Selecionar todos
2007-10-21 02:52 UTC+0100 Viktor Szakats (vszakats.net/harbour)
* source/rtl/set.c
! Fixed SET DEVICE TO PRINTER not to add an extension (".prn")
to the filename specified by SET PRINTER TO (the extension
is only added by the SET PRINTER TO command).
! Fixed SET DEVICE TO PRINTER to point to "LPT1" by default
(instead of "PRN") under Win32 (this is now in sync with
ISPRINTER() logic). Added "PRN" for the rest of OSes (TOFIX).
; Pls test.
Saudações,Fixed SET DEVICE TO PRINTER to point to "LPT1" by default
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7929
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Imprimir condensado usando WIN_PRN
Teste ai:ferase("&CLI..") // é assim mesmo? o nome do conteúdo da variável "CLI" é "0001.prn" 4/6/15w
Código: Selecionar todos
alert("MEU LUGAR AGORA É: "+hb_DirBase())
IF File(CLI)
... Tem arquivo aqui! posso apagar!
ferase(cli)
ELSE
... Não tem aquivo aqui, está em outro lugar
ENDIF
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7929
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Imprimir condensado usando WIN_PRN
Outro detalhe é:
Você está atirando p/ todos os lados.
Essa postagem aqui é para modo gráfico do windows para a classe WIN_PRN.
oPrn := win_prn():New(cPrint) //Usando assim é para escolher as fontes do windows "Arial,Times...", desenhos, etc...
Outra coisa é usar:
Win_PrintFileRaw() é para modo texto com os comandos ESC/POS...como usávamos antigamente "CHR(X)"
Uma coisa não tem nada a ver com outra.
Saudações,
Itamar M. Lins Jr.
Você está atirando p/ todos os lados.
Essa postagem aqui é para modo gráfico do windows para a classe WIN_PRN.
oPrn := win_prn():New(cPrint) //Usando assim é para escolher as fontes do windows "Arial,Times...", desenhos, etc...
Outra coisa é usar:
Win_PrintFileRaw() é para modo texto com os comandos ESC/POS...como usávamos antigamente "CHR(X)"
Uma coisa não tem nada a ver com outra.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
Imprimir condensado usando WIN_PRN
Então, não sei se expliquei bem...
o arquivo CLI não existe, o que é o conteúdo dele: 0001.PRN.
Então modifiquei para assim:
E está excluindo... bom agora voltemos para o CONDENSADO que não está aplicando. Será que não é essa questão que um de nossos companheiros postou que algumas impressoras da HP não imprimem corretamente e teremos que usar o WIN_PRN?
:-O
o arquivo CLI não existe, o que é o conteúdo dele: 0001.PRN.
Então modifiquei para assim:
Código: Selecionar todos
ferase("&CLI..PRN"):-O
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7929
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Imprimir condensado usando WIN_PRN
Não é nada disso. Eu expliquei.Será que não é essa questão que um de nossos companheiros postou que algumas impressoras da HP não imprimem corretamente
WIN_PRN é uma coisa win_PrintFileRaw() é outra.
Algumas impressoras que tem porta USB aceitam ESC/POS, a maioria não aceita. Para esses tipos de impressoras, as que não aceitam, é preciso usar a classe WIN_PRN.
Então para encurtar a conversa, da forma que vc está querendo, já está explicado no inicio desse tópico.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
Imprimir condensado usando WIN_PRN
Xi prezado professor e colaborador, agora V.Sa. me confundiu mais ainda... não sei se sou um BIOS ou se estamos falando da mesma coisa.Itamar M. Lins Jr. escreveu:Então para encurtar a conversa, da forma que vc está querendo, já está explicado no inicio desse tópico.
Então, como não entendi, vou perguntar novamente com outras palavras:
- 1 No meu caso, usando USB impressora HP C4280 o PRINTFILERAW() não irá imprimir os caracteres especiais da EPSON LX 300 (matriciais em geral), ou seja, os CONDENSADO, LARGO, ITALIC, BOLD, etc? aí terei que usar o WIN_PRN?
- 2 Caso no cliente exista uma LX 300 ou qulquer outra impressora na LPT1 o PRINTFILERAW () irá funcionar?
- 3 Em caso afirmativo das respostas acima, terei que fazer uma rotina que interprete as 2 situações, ou seja, se tem impressora LPT1, usar o PRINTFILERAW ou mesmo o SET PRINTER TO LPT1, e, se tiver uma impressora USB usar o WIN_PRN?
Acho, q se agora eu não entender as respostas suas ou de alguém que estiver compartilhando, sou mesmo um BIOS... rsrsrs
té daqui a pouco!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7929
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Imprimir condensado usando WIN_PRN
Ola!
1) Esqueça a porta ok! USB, LPT1, WiFi, não importa isso.
2) As impressoras antigas usavam ESC/POS que são os comandos CHR(x) que usamos para condensado, etc... algumas impressoras Lasers/Jato de Tinta ALGUMAS! ainda entendem isso, mas a maioria dessas impressoras novas Jato do tinta e Lasers, não entendem o CHR().
3) Para imprimir no windows com essas impressoras HP/Epson... usamos o sistema de impressão do windows "DO SISTEMA OPERACIONAL", então não tem condensado, expandido. Tem o tamanho da fonte que escolhemos. Por exemplo no WORD vc escolhe a FONTE de letra CORRETO ? É a mesma coisa com os programas feito para windows, tanto faz ser no DELPHI ou no Harbour, para imprimir nessas impressoras precisamos ESCOLHER as LETRAS e seus respectivos tamanhos. Por isso usamos a CLASSE WIN_PRN.
Neste pequeno exemplo tem tudo que vc precisa p/ imprimir nas impressoras Lasers/Jato de tinta. Essa função imprime também nas matriciais LX300, só que com aquela velocidade bem lenta porque está em modo gráfico. Nas matriciais WIN_PRN imprime mais devagar, só se vc escolher a fonte de letra DRAFT ou colocar no windows p/ usar o drive GENERIC/TEXT!!!
A porta USB/LPT1/etc... Não importa mais, porque vc estará imprimindo via gerenciador de impressão do windows, ele se vira quanto a isso.
Então é o seguinte:
a)Forma antiga usamos nas matriciais. "Favor esquecer a porta!" (Emilia PC/RIMA XT180/LX810/LX300...)
b)Forma nova(WIN_PRN), escolhemos as letras e tamanhos, linhas, circulos, quadrados... enfim temos que diagramar na unha o texto.
A Classe WIN_PRN imprime nas DUAS a) ou b)
A Função WIN_PrintFileRaw() imprime o texto CRU, PURO, mas com os comandos CHR(). (COISA DE ÍNDIO)
Saudações,
Itamar M. Lins Jr.
1) Esqueça a porta ok! USB, LPT1, WiFi, não importa isso.
2) As impressoras antigas usavam ESC/POS que são os comandos CHR(x) que usamos para condensado, etc... algumas impressoras Lasers/Jato de Tinta ALGUMAS! ainda entendem isso, mas a maioria dessas impressoras novas Jato do tinta e Lasers, não entendem o CHR().
3) Para imprimir no windows com essas impressoras HP/Epson... usamos o sistema de impressão do windows "DO SISTEMA OPERACIONAL", então não tem condensado, expandido. Tem o tamanho da fonte que escolhemos. Por exemplo no WORD vc escolhe a FONTE de letra CORRETO ? É a mesma coisa com os programas feito para windows, tanto faz ser no DELPHI ou no Harbour, para imprimir nessas impressoras precisamos ESCOLHER as LETRAS e seus respectivos tamanhos. Por isso usamos a CLASSE WIN_PRN.
Código: Selecionar todos
/*
Libs: -lxhb -lhbwin
*/
Function Main()
Local eol := Chr(13) + Chr(10), cCupom, nPrn, aPrn := Win_PrinterList()
Clear Screen
cCupom := " NOME E SLOGAN DA LOJA " + eol
cCupom += "Boleto: 00000001 - 20/03/2012 - 08:33:31" + eol
cCupom += "========================================" + eol
cCupom += " VENDA AVULSA DE PRODUTOS " + eol
cCupom += "========================================" + eol
cCupom += "Codigo Descricao do produto " + eol
cCupom += " Qtde Unitario Valor Item" + eol
cCupom += "----------------------------------------" + eol
cCupom += "0000000000001 => COCA - 600 ML " + eol
cCupom += " 1 Un x 1,00 = 1,00" + eol
cCupom += "----------------------------------------" + eol
cCupom += " " + eol
cCupom += "VALOR TOTAL DA COMPRA .....=> 1,00" + eol
cCupom += " " + eol
cCupom += " Atendido Por: ATENDENTE 1 " + eol
cCupom += "========================================" + eol
cCupom += " " + eol
MemoWrit( "vendas.tmp", cCupom )
While nPrn != 0
@ 1, 0 SAY "Selecione a impressora:"
@ 2, 0 TO MaxRow(), MaxCol()
nPrn := AChoice( 3, 1, MaxRow() - 1, MaxCol() - 1, aPrn, .T.,, nPrn )
IF nPrn != 0
PrintWinPrn( "vendas.tmp", aPrn[ nPrn ] )
Endi
EndDo
Clear Screen
Return Nil
Function PrintWinPrn( cArq, cPrint )
Local oPrn, aPrn := GetPrinters(), n := 0
oPrn := Win_Prn():New(cPrint)
oPrn :Copies := 1
oPrn :CharSet(255)
oPrn:SetFont('courier new',17,{1,17}, 0,.F.,.F.)
If !oPrn:Create()
Alert("Nao foi criado o documento de Impressao")
Return nil
EndIf
If !oPrn:StartDoc("Imprimindo Documento")
Alert("Erro na Impressora")
Return nil
EndIf
HB_CDPSelect("PT850")
SetPrc(0,0)
cText := MemoRead( cArq )
nLinh := MlCount( cText )
For n := 1 to nLinh
oPrn:TextOut(HB_AnsiToOem(MemoLine(cText,,n)),.t.)
Next
oPrn:EndDoc()
HB_CDPSelect( "PTISO")
Return .t.
A porta USB/LPT1/etc... Não importa mais, porque vc estará imprimindo via gerenciador de impressão do windows, ele se vira quanto a isso.
Aqui está sendo SETADO/ESCOLHIDO a fonte de letra p/ imprimir veja que não tem chr(15)oPrn:SetFont('courier new',17,{1,17}, 0,.F.,.F.)
Então é o seguinte:
a)Forma antiga usamos nas matriciais. "Favor esquecer a porta!" (Emilia PC/RIMA XT180/LX810/LX300...)
b)Forma nova(WIN_PRN), escolhemos as letras e tamanhos, linhas, circulos, quadrados... enfim temos que diagramar na unha o texto.
A Classe WIN_PRN imprime nas DUAS a) ou b)
A Função WIN_PrintFileRaw() imprime o texto CRU, PURO, mas com os comandos CHR(). (COISA DE ÍNDIO)
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Imprimir condensado usando WIN_PRN
Amigos, em 2013 postei na seção Download um exemplo usando PrintFileRaw() e win_prn(), que pode servir como exemplo:
Visualizando relatórios - Console + HwGui
ATENÇÃO: conforme o título do arquivo para download, este é um exemplo em modo console com telas em modo gráfico usando a HwGui. Então para programas que são compilados utilizando a IDE HMG (principalmente utilizando o arquivo hmg.ch) este código não vai funcionar, servirá apenas como exemplo, devido as telas gráficas onde são utilizados comandos e funções da HwGui.
Para programas compilados utilizando o HBMK2 do Harbour, este exemplo vai funcionar corretamente, mas lembrando que as LIBs da HwGui que segue junto com os fontes deste demo (hwgui, hbxml, procmisc e hwg_qhtm) são para o Harbour 3.0, para versões mais recente do Harbour (3.2 ou 3.4) as LIBs devem ser recompiladas.
Neste exemplo os comandos CHR() utilizados são os seguintes:
No arquivo relatorio.txt tem um exemplo utilizando alguns comandos acima, que são interpretado pela função de impressão Imprime_hb().
Para testes, você pode criar o seu relatório e gravar como relatorio.txt e trocar pelo arquivo relatorio.txt deste exemplo, ai é só executar o open_rel.exe que o arquivo poderá ser visualizado e impresso em qualquer impressora instalada no Windows.
Lembrando: os CHR() reconhecidas neste demo são os listados acima.
Abraços,
Visualizando relatórios - Console + HwGui
ATENÇÃO: conforme o título do arquivo para download, este é um exemplo em modo console com telas em modo gráfico usando a HwGui. Então para programas que são compilados utilizando a IDE HMG (principalmente utilizando o arquivo hmg.ch) este código não vai funcionar, servirá apenas como exemplo, devido as telas gráficas onde são utilizados comandos e funções da HwGui.
Para programas compilados utilizando o HBMK2 do Harbour, este exemplo vai funcionar corretamente, mas lembrando que as LIBs da HwGui que segue junto com os fontes deste demo (hwgui, hbxml, procmisc e hwg_qhtm) são para o Harbour 3.0, para versões mais recente do Harbour (3.2 ou 3.4) as LIBs devem ser recompiladas.
Neste exemplo os comandos CHR() utilizados são os seguintes:
Código: Selecionar todos
Private chr_pcom:="CHR(15)" // ativa comprimido
Private chr_tcom:="CHR(18)" // desativa comprimido
Private chr_pc20:="CHR(27)+'M'+CHR(15)" // ativa comprimido (20 cpp)
Private chr_tc20:="CHR(27)+'P'" // desativa comprimido (20 cpp)
Private chr_peli:="CHR(27)+'M'" // ativa elite
Private chr_teli:="CHR(27)+'P'" // desativa elite
Private chr_penf:="CHR(27)+'E'" // ativa enfatizado
Private chr_tenf:="CHR(27)+'F'" // desativa enfatizado
Private chr_pexp:="CHR(27)+'W'+CHR(1)" // ativa expansao
Private chr_texp:="CHR(27)+'W'+CHR(0)" // desativa expansao
Private chr_pde8:="CHR(27)+'0'" // ativa 8 lpp
Private chr_tde8:="CHR(27)+'2'" // desativa 8 lppPara testes, você pode criar o seu relatório e gravar como relatorio.txt e trocar pelo arquivo relatorio.txt deste exemplo, ai é só executar o open_rel.exe que o arquivo poderá ser visualizado e impresso em qualquer impressora instalada no Windows.
Lembrando: os CHR() reconhecidas neste demo são os listados acima.
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Imprimir condensado usando WIN_PRN
Itamar, concordo 101% e vou pegar uma carona no seu post.
Acho que é preciso, antes, o pessoal entender a diferença entre:
- uma impressora matricial, que trabalha com um conjunto restrito de fontes e estilos que estão gravadas nela e que são escolhidos via comandos ESC/POS, e
- uma impressora “windows”, que trabalha em pixels e já recebe tudo mastigado do SO.
São dois mundos diferentes.
- o primeiro é o SET PRIN TO, impressão direta na LPT/COM, linha/coluna, ESC/POS, draft ou não...
- o segundo é a Win32Prn(), spool do Windows, LPT/USB/Local/Rede, pixels, qualquer fonte...
Uma matricial, quando recebe um chr(65) do SO, pega numa tabela interna um determinado conjunto de comandos e “desenha” o A no papel, com base nas 9 ou 12 agulhas disponíveis e no estilo setado (Draft, por ex). Já uma Windows não precisa do chr(65). Ela recebe tudo mastigado do SO, em pixels, baseando-se na fonte, tamanho, kerning, cor etc. escolhidas.
Pixels? Fácil de entender. No Clipper, tinha a limitação de 24 linhas x 80 colunas, então eram “24x80 pixels” (entre aspas), onde um A ocupava “um pixel”. Agora, falamos em 1920x1080 pixels, onde o mesmo A vai ser desenhado ocupando N pixels, dependendo do que vc tiver em mente. É outro mundo.
E os comandos ESC/POS, o que são? Quando uma LX300 recebe um chr(65), imprime um "A". Já no caso se um chr(27)+chr(15), ela entende que é um comando, um comando pra passar a usar a tabela de caracteres Condensado, pq isso faz parte do programa interno dela, é um argumento. Já uma “windows”, é outro papo. Não tem ESC/POS.
Por fim, vem o complicômetro, que é a migração de uma pra outra plataforma. A Win32Prn() foi concebida pra pixels mas, pra ajudar na migração Clipper/Harbour, incluiu algumas pontes pra aceitar coisas antigas. No meu entender, o RAW print (que eu nunca usei) parece ser algo nessa linha: tornar possível mandar um chr(15) pra impressora, fazendo ela entender que é um comando e não pra imprimir “chr(15)”. E isso só se a impressora aceitar o chr(15). Se não aceitar, é como vc falou: define a fonte e tamanho antes e depois manda imprimir.
Enfim, é a minha “velha tecla”: o pessoal quer copiar, colar e sair usando. Até por necessidade, concordo, porque o tempo não espera. Mas tudo fica muito mais fácil quando vc entende o que está acontecendo.
Acho que é preciso, antes, o pessoal entender a diferença entre:
- uma impressora matricial, que trabalha com um conjunto restrito de fontes e estilos que estão gravadas nela e que são escolhidos via comandos ESC/POS, e
- uma impressora “windows”, que trabalha em pixels e já recebe tudo mastigado do SO.
São dois mundos diferentes.
- o primeiro é o SET PRIN TO, impressão direta na LPT/COM, linha/coluna, ESC/POS, draft ou não...
- o segundo é a Win32Prn(), spool do Windows, LPT/USB/Local/Rede, pixels, qualquer fonte...
Uma matricial, quando recebe um chr(65) do SO, pega numa tabela interna um determinado conjunto de comandos e “desenha” o A no papel, com base nas 9 ou 12 agulhas disponíveis e no estilo setado (Draft, por ex). Já uma Windows não precisa do chr(65). Ela recebe tudo mastigado do SO, em pixels, baseando-se na fonte, tamanho, kerning, cor etc. escolhidas.
Pixels? Fácil de entender. No Clipper, tinha a limitação de 24 linhas x 80 colunas, então eram “24x80 pixels” (entre aspas), onde um A ocupava “um pixel”. Agora, falamos em 1920x1080 pixels, onde o mesmo A vai ser desenhado ocupando N pixels, dependendo do que vc tiver em mente. É outro mundo.
E os comandos ESC/POS, o que são? Quando uma LX300 recebe um chr(65), imprime um "A". Já no caso se um chr(27)+chr(15), ela entende que é um comando, um comando pra passar a usar a tabela de caracteres Condensado, pq isso faz parte do programa interno dela, é um argumento. Já uma “windows”, é outro papo. Não tem ESC/POS.
Por fim, vem o complicômetro, que é a migração de uma pra outra plataforma. A Win32Prn() foi concebida pra pixels mas, pra ajudar na migração Clipper/Harbour, incluiu algumas pontes pra aceitar coisas antigas. No meu entender, o RAW print (que eu nunca usei) parece ser algo nessa linha: tornar possível mandar um chr(15) pra impressora, fazendo ela entender que é um comando e não pra imprimir “chr(15)”. E isso só se a impressora aceitar o chr(15). Se não aceitar, é como vc falou: define a fonte e tamanho antes e depois manda imprimir.
Enfim, é a minha “velha tecla”: o pessoal quer copiar, colar e sair usando. Até por necessidade, concordo, porque o tempo não espera. Mas tudo fica muito mais fácil quando vc entende o que está acontecendo.
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
Imprimir condensado usando WIN_PRN
Sr. Eolo, tu tá meio sumido...
semana passada tentei compilar e consegui aquele programinha que vc me mandou em 2010 (acho).
Deu pra pegar muita coisa...
bom, a coisa não é tanto em carona, e, sim uma necessidade de quem já está "há anos luz" atrás de tanta gente que conhece de: C, C++, C#, JAVA, JAVASCRIPT, VB, VB.NET, PHYTON, DELPHI, ANDROID... e estamos no Win 8.1... e nós os que ficamos sem migrar de clipper para qualquer outra linguagem, estamos ainda no win 98se.
Então, com suas explicações 101%, deu pra entender que as impressoras LX300 (matriciais em geral) ao receber o CHR(15) entendem que não era um caractere e sim um comando.
Bom, então, preciso aprender o WIN_PRN, e, nesse momento estou tentando estudar os exemplos da pasta CONTRIB\HBWIN\TESTS que tem ali 4 exemplos PRN.
Digo, tentando estudar, pois a gente não encontra livros nas livrarias ou tutoriais com SINTAXE correta, e, aí meu caro amigo e parceiro q tanto me ajudou, aliás, se não fosse por V.Sa. nem rodar meu antigo clipper em win xp eu não estaria, pois fora V.Sa. quem me passou o tal OSLIB, lembra?
Então, como estava dizendo, falta materiais com manuais, e, se não fosse por V.Sas. contribuindo juntamente com o PC, TOLEDO, quem seríamos nós...
se já estávamos "falidos" e na idade da pedra, um dia a pedra acabaria.
Bom, um forte abraço, e, gostaria de entender melhor essa WIN_PRN, pelo que vejo é a solução para o meu, seu e o nosso caso...
Cheguei a encontrar uma pessoa que me ofereceu uma coisa fantástica em solução de abrir um formulário e o usuário escolhesse em qual impressora e tipo de impressão, mas, me pediu (acho pouco) R$ 1.900,00 pelos códigos (na verdade eu quem ganho pouco ou quase nada, V.Sa. lembra da minha história, tô do mesmo jeito financeiramente).
Um abraço, tava com saudades de V.Sa., e, aliás, estava pensando em ti ainda hoje, e V.Sa. apareceu, fico feliz de saber que estás por aqui...
vlw!
semana passada tentei compilar e consegui aquele programinha que vc me mandou em 2010 (acho).
Deu pra pegar muita coisa...
bom, a coisa não é tanto em carona, e, sim uma necessidade de quem já está "há anos luz" atrás de tanta gente que conhece de: C, C++, C#, JAVA, JAVASCRIPT, VB, VB.NET, PHYTON, DELPHI, ANDROID... e estamos no Win 8.1... e nós os que ficamos sem migrar de clipper para qualquer outra linguagem, estamos ainda no win 98se.
Então, com suas explicações 101%, deu pra entender que as impressoras LX300 (matriciais em geral) ao receber o CHR(15) entendem que não era um caractere e sim um comando.
Bom, então, preciso aprender o WIN_PRN, e, nesse momento estou tentando estudar os exemplos da pasta CONTRIB\HBWIN\TESTS que tem ali 4 exemplos PRN.
Digo, tentando estudar, pois a gente não encontra livros nas livrarias ou tutoriais com SINTAXE correta, e, aí meu caro amigo e parceiro q tanto me ajudou, aliás, se não fosse por V.Sa. nem rodar meu antigo clipper em win xp eu não estaria, pois fora V.Sa. quem me passou o tal OSLIB, lembra?
Então, como estava dizendo, falta materiais com manuais, e, se não fosse por V.Sas. contribuindo juntamente com o PC, TOLEDO, quem seríamos nós...
se já estávamos "falidos" e na idade da pedra, um dia a pedra acabaria.
Bom, um forte abraço, e, gostaria de entender melhor essa WIN_PRN, pelo que vejo é a solução para o meu, seu e o nosso caso...
Cheguei a encontrar uma pessoa que me ofereceu uma coisa fantástica em solução de abrir um formulário e o usuário escolhesse em qual impressora e tipo de impressão, mas, me pediu (acho pouco) R$ 1.900,00 pelos códigos (na verdade eu quem ganho pouco ou quase nada, V.Sa. lembra da minha história, tô do mesmo jeito financeiramente).
Um abraço, tava com saudades de V.Sa., e, aliás, estava pensando em ti ainda hoje, e V.Sa. apareceu, fico feliz de saber que estás por aqui...
vlw!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
Imprimir condensado usando WIN_PRN
Prezado Toledo, preciso entender melhor seu OPEN_REL:Toledo escreveu:ATENÇÃO: conforme o título do arquivo para download, este é um exemplo em modo console com telas em modo gráfico usando a HwGui. Então para programas que são compilados utilizando a IDE HMG (principalmente utilizando o arquivo hmg.ch) este código não vai funcionar, servirá apenas como exemplo, devido as telas gráficas onde são utilizados comandos e funções da HwGui.
Para programas compilados utilizando o HBMK2 do Harbour, este exemplo vai funcionar corretamente, mas lembrando que as LIBs da HwGui que segue junto com os fontes deste demo (hwgui, hbxml, procmisc e hwg_qhtm) são para o Harbour 3.0, para versões mais recente do Harbour (3.2 ou 3.4) as LIBs devem ser recompiladas.
1 - fiz através do meu aplicativo que fosse impresso em arquivo através do SET PRINTER TO RELATORIO.TXT todos os dados que eu quero imprimir e usei dentro da pasta onde está o meu "relatorio.txt" uma cópia do seu Open_rel.exe. Então executei-o manualmente e o seu aplicativo não aceita após o enter para imprimir. Então, abri meu RELATORIO.TXT para saber se tinha algo e está tudo perfeito. Se eu trocar o meu RELATORIO.TXT pelo que veio no seu download, aí o seu Open_rel abre os dados contidos no seu relatorio.txt. Então, o que pode estar errado com o meu relatorio.txt para que o seu programinha não o abra?
2 - V.Sa. menciona que para usar a HMG seu PRG com as LIBs inclusas não dá certo. Isso é por causa da versão que uso que é a HMG 3.0.35? Bom, se for o caso, já estou testando a HMG 3.0.46 e só não mudei para a 3.4.0 pois lembra noutro post que V.Sa. disse que o BUILD.BAT está com problemas? Então ainda (apesar de ter baixado) não o instalei. Então, nesse caso, o que preciso para usar essa lib HWGUI sem ser via puro HARBOUR (harbour sem IDEs)?
3 - Finalmente, como fazer para recompilar essas LIBs para harbour 3.2 e em quais pastas devo colocá-las?
Quanto ao seu programinha, achei-o bastante "filé" digamos assim, é o que um cara noutro lugar me ofereceu por uns R$ 1900,00, ALIÁS, acho q vale até mais, pois não há preço que pague conhecimento, mas, no momento, e há muitos anos, só tenho gastado e jamais recebido a não ser de um único cliente. Estava já desistindo de migração, como já havia dito em outras oportunidades, e, inclusive, o Sr. Eolo quem está aqui nest post, foi um dos que me ajudou muito há uns 4 anos atrás. Então, com a minha "tékenfin" migração em 01/2015, como diz a música da Bruna Karla: "O Sonho Não Acabou" e posso sair das sombras,...
aliás, toca pra nós aí amigo Eolo, algo dos anos 60, pode ser... Os Sombras?
vlw gente!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Imprimir condensado usando WIN_PRN
Faz o contrário, copie o seu relatorio.txt dentro da pasta onde você descompactou os arquivos o Open_rel. Apenas antes, você pode renomear o relatorio.txt que vem junto com o Open_rel para preservar o arquivo original.microvolution escreveu:e usei dentro da pasta onde está o meu "relatorio.txt" uma cópia do seu Open_rel.exe.
Compactar este seu arquivo relatorio.txt (ZIP ou RAR) e depois anexar aqui neste tópico.microvolution escreveu:Então, o que pode estar errado com o meu relatorio.txt
Veja aqui com anexar um arquivo no tópico.
Como disse na minha mensagem anterior, as telas gráficas que são usadas no código do Open_rel é das funções da HwGui, então com o HMG não vai funcionar, pois são bibliotecas diferentes. Neste caso, o código das telas gráficas tem que ser alterado para as funções da HMG.microvolution escreveu:usar a HMG seu PRG com as LIBs inclusas não dá certo. Isso é por causa da versão que uso que é a HMG 3.0.35?
HMG e HwGui são bibliotecas diferentes, então não tem como usar as funções da hWGui, que estão no Open_rel, e compilar com a HMG. Já em Harbour puro (sem usar o hmg.ch) teria como.microvolution escreveu:Então, nesse caso, o que preciso para usar essa lib HWGUI sem ser via puro HARBOUR (harbour sem IDEs)?
Só usando o código fonte da HwGui, mas nas últimas versões da HwGui (2.18 ou 2.19) não consegui compilar programas console e mesclar telas gráficas (HwGui) com modo texto (Harbour).microvolution escreveu:como fazer para recompilar essas LIBs para harbour 3.2
Download da HwGui.
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
Imprimir condensado usando WIN_PRN
Prezado Toledo, baixei os arquivos referentes à HWGUI,os quais são 3 ZIPs:Toledo escreveu: Só usando o código fonte da HwGui, mas nas últimas versões da HwGui (2.18 ou 2.19) não consegui compilar programas console e mesclar telas gráficas (HwGui) com modo texto (Harbour).
Download da HwGui.
Abraços,
- hwgui-2.19-b3.bcc
- hwgui-2.19-b3.mingw
- hwgui-2.19-b3.src
Desculpe minha ignorância (please), mas, é só descompactar e pronto?
Cadê o instalador (SETUP.EXE ou algo assim)?
e, cadê a IDE visual?
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
