Clipper On Line • Ver Tópico - como imprimir em modo console ?

como imprimir em modo console ?

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

como imprimir em modo console ?

Mensagempor Trazom » 15 Dez 2021 10:40

Ola amigos

Fiz a conversao para harbour ainda em modo console (a versao win tb esta sendo elaborada mas ainda nao terminei) como tenho alguns clientes que insistem em usar DOS continuo atualizando toda a regra de negocio em modo console mesmo, agora com o advento no win11 nao estou mais conseguindo imprimir, estou gerando o arquivo txt e o usuario se vira pra converter, como posso gerar um pdf diretamente em modo console ? ou ainda, como posso abrir uma janela for windows a partir do modo console e imprimir pela miniprint ?
Imagem

Harbour 3.2 HMG 1.2a NSX
Evandro
Pelo fato de exercitar bem a própria arte,
cada um pretendia ser sapientíssimo também nas
outras coisas de maior importância,
e esse erro obscurecia o seu saber

Platão, Apologia de Sócrates
Avatar de usuário

Trazom
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 260
Data de registro: 14 Ago 2003 01:01
Cidade/Estado: Maceió/AL
Curtiu: 0 vez
Mens.Curtidas: 1 vez

como imprimir em modo console ?

Mensagempor Jairo Maia » 15 Dez 2021 12:06

Em se tratando dos sistemas rodando sob DOS, nada muda, e nos sistemas rodando sob Windows, veja se esse exemplo ajuda:

Function Main()
Local aPrinters, cPrinter, nPrn
Local cFilePrint := "SeuArquivo.Txt"

Clear Screen

aPrinters := GetPrinters()

nPrn := AChoice( 12, 11, 16, 69, aPrinters, .T. )

If nPrn != 0

  cPrinter := aPrinters[ nPrn ]

  Hb_Alert( "Imprimir em:;;" + cPrinter )
 
  Win_PrintFileRaw( cPrinter, cFilePrint, "Teste de Impressão" )

EndIf

Return Nil
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

como imprimir em modo console ?

Mensagempor Trazom » 15 Dez 2021 20:49

como assim nada muda ?
veja so, a partir da instalaçao de uma certa versao de windows, não é mais possível imprimir em lpt1, como fazia com clipper
aí passei a gerar a impressao num arquivo txt agora preciso fazer imprimir esse txt usando o compilador do harbour 3.4 em modo console mesmo usando @ say, @get

o que preciso é uma converter esse arquivo em pdf pelo menos, pra fazer o relatorio eu uso ?'cadalinha que quero imprimir cooloco assim'+variaveis
Imagem

Harbour 3.2 HMG 1.2a NSX
Evandro
Pelo fato de exercitar bem a própria arte,
cada um pretendia ser sapientíssimo também nas
outras coisas de maior importância,
e esse erro obscurecia o seu saber

Platão, Apologia de Sócrates
Avatar de usuário

Trazom
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 260
Data de registro: 14 Ago 2003 01:01
Cidade/Estado: Maceió/AL
Curtiu: 0 vez
Mens.Curtidas: 1 vez

como imprimir em modo console ?

Mensagempor Itamar M. Lins Jr. » 15 Dez 2021 22:02

Olá!
a partir da instalaçao de uma certa versao de windows, não é mais possível imprimir em lpt1

Qualquer versão do windows imprime em LPTX inclusive o LINUX. O problema é que não vem mais a porta LPT1 e as seriais, fisicamente falando.
LPTX é uma porta. Pode ser COM1, USB001, USB002 etc..
Porta não é leiaute(conteúdo) de arquivo.
Aqui no forum temos diversos exemplos, do simples ao complicado. Esse que foi postado é o "feijão com arroz", mas tem mais diversas opções.
Hwgui, Minigui... Vai depender da sua lib gráfica. E se usa console pode usar winprn "a classe", tem a classe adaptada pelo José Quintas que gera PDF... Procure aqui no forum.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6951
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 312 vezes
Mens.Curtidas: 508 vezes

como imprimir em modo console ?

Mensagempor Trazom » 15 Dez 2021 22:28

Valeu pessoal, muito obrigado, resolveu

Agora gera diretamente o pdf como eu queria !

Eu é que estava receoso em usar usar as libs que acompanham o harbour so fiz a conversao direta do clipper mesmo, agora ja vi que todas essas libs estao aí pra serem usadas e nao vao causar problemas como no antigo clipper.

Obrigado mesmo, um monte de horizontes se abriram agora.... vcs sao demais.!
Imagem

Harbour 3.2 HMG 1.2a NSX
Evandro
Pelo fato de exercitar bem a própria arte,
cada um pretendia ser sapientíssimo também nas
outras coisas de maior importância,
e esse erro obscurecia o seu saber

Platão, Apologia de Sócrates
Avatar de usuário

Trazom
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 260
Data de registro: 14 Ago 2003 01:01
Cidade/Estado: Maceió/AL
Curtiu: 0 vez
Mens.Curtidas: 1 vez

como imprimir em modo console ?

Mensagempor Trazom » 15 Dez 2021 23:28

porém to gerando pdf mas nao tem conteudo, fiquei na duvida agora se usando win_printfileraw() vai funcionar para impressoras do windows

bom de qualquer forma, valeu muito o aprendizado, amanha continuamos
Imagem

Harbour 3.2 HMG 1.2a NSX
Evandro
Pelo fato de exercitar bem a própria arte,
cada um pretendia ser sapientíssimo também nas
outras coisas de maior importância,
e esse erro obscurecia o seu saber

Platão, Apologia de Sócrates
Avatar de usuário

Trazom
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 260
Data de registro: 14 Ago 2003 01:01
Cidade/Estado: Maceió/AL
Curtiu: 0 vez
Mens.Curtidas: 1 vez

como imprimir em modo console ?

Mensagempor Itamar M. Lins Jr. » 17 Dez 2021 10:44

Olá!
mas nao tem conteudo,

Só vai funcionar da forma que está querendo se usar a classe winprn.

Pedaço de código para dar uma noção.

oPrn := win_prn():New(rtrim(aPrn[oPrint]))
oPrn :LandScape := .F.
oPrn :FormType  := FORM_A4
oPrn :Copies    :=  1

If !oPrn:Create()
    hwg_Msginfo("Não foi criado documento")
    Return Nil
Else

   If !oPrn:startDoc("Imprimindo Livros de Entradas")

      hwg_Msginfo("Erro na Impressora")
      Return Nil

   Else

      CabLivroEntradasII()

... etc e tals...

return .t.

***************************
Function CabLivroEntradasII
***************************
*
*
oPagina:refresh()
oPrn:SetPrc(4,0)
// oPrn:CharSet(0)
// oPrn:Bold(0)
oprn:SetFont('Lucida Console',10,{-3,60})
oprn:Textout(padc('LIVRO REGISTRO DE ENTRADAS - RE - MODELO P1/A',130),.t.)
//oPrn:SetFont('Lucida Console',7,0)
oPrn:SetFont( "Lucida Console", 8, { 3, -50 } )

  linha :='|'+replicate('-',129)+'|'
oprn:Textout(linha,.t.)
oprn:Textout('|                                  R E G I S T R O    D E    E N T R A D A S                    |  (a) CODIGO DE VALORES FISCAIS  |',.t.)
oprn:Textout('|                                                                                               |---------------------------------|',.t.)
oprn:Textout('| Firma: '+em->empresa +space(27)                   +                                          '| 1 - OPERACOES COM CREDITO DO    |',.t.)
oprn:Textout('|                                                                                               |     IMPOSTO                     |',.t.)
oprn:Textout('| Insc.Est.: '+em->i_e +space(13)+ 'CNPJ: '+ em->cgc +space(36)           +                    '| 2 - OPER. SEM CREDITO DO IMPOSTO|',.t.)
oprn:Textout('|                                                                                               |     ISENTAS OU NAO TRIBUTADAS   |',.t.)
oprn:Textout('| Folha: '+ zero_esq(nPagina,4)+spac(27)+'MES OU PERIODO/ANO: '+ pad(mes(nMes)+'/'+cAno,36)+   '| 3 - OPER. SEM CREDITO DO IMPOSTO|',.t.)
oprn:Textout('|                                                                                               |     OUTRAS                      |',.t.)
oprn:Textout('+--------+---------------------------------------------+-------------+----------+---------------------------------+---------------+',.t.)
oprn:Textout('|        |        DOCUMENTOS FISCAIS                   |             |          VALORES FISCAIS                   |               |',.t.)
oprn:Textout('|DATA DE +---+---+---------+--------+--------------+---+             +----+----+---+------------------------------+               |',.t.)
oprn:Textout('|        |ES-|SE-|         |DATA DO |   CODIGO     |UF |    VALOR    |    |    |   |   BASE     |     |  IMPOSTO  |               |',.t.)
oprn:Textout('|        |   |RIE|         |        |              |   |             |    |ICMS|COD| DE CALCULO | ALI-|           |  OBSERVACOES  |',.t.)
oprn:Textout('|        |PE-|SUB| NUMERO  |        |              |ORI|   CONTABIL  |CFOP|    |   |     OU     |QUOTA| CREDITADO |               |',.t.)
oprn:Textout('|ENTRADA |   |SE-|         |DOCUMEN-|  EMITENTE    |GEM|             |    |IPI |(A)|  VALOR DA  |     |           |               |',.t.)
oprn:Textout('|        |CIE|RIE|         |TO      |              |   |             |    |    |   |  OPERACAO  |     |           |               |',.t.)
oprn:Textout('+--------+---+---+---------+--------+--------------+---+-------------+----+----+---+------------+-----+-----------+---------------+',.t.)



Aqui no forum tem diversos exemplos, procura ai...

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6951
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 312 vezes
Mens.Curtidas: 508 vezes

como imprimir em modo console ?

Mensagempor paiva » 18 Dez 2021 08:10

se vc ja gera em TXT

faça

xfile := Strtran( xfile, [.pdf], "" )
Erase_xfile = alltrim(xfile) + [.pdf]
erase &Erase_xfile
seta_tamanho_pdf()

xrun = [\dbdc\dosprint /FILE /PDF ] + cCpi + ccpil + Arquivo

MyRun(xrun)
xfile = alltrim(xfile) + [.pdf]
paiva
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 257
Data de registro: 04 Ago 2005 10:28
Curtiu: 0 vez
Mens.Curtidas: 9 vezes

como imprimir em modo console ?

Mensagempor JoséQuintas » 20 Dez 2021 08:21

Trazom escreveu:como posso abrir uma janela for windows a partir do modo console e imprimir pela miniprint ?


Acho que não perceberam um detalhe, miniprint é HMG, talvez as soluções do Harbour não sirvam.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18152
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes




Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 11 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro