como imprimir em modo console ?

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
Trazom
Usuário Nível 3
Usuário Nível 3
Mensagens: 277
Registrado em: 14 Ago 2003 01:01
Localização: Maceió/AL

como imprimir em modo console ?

Mensagem por Trazom »

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 do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

como imprimir em modo console ?

Mensagem por Jairo Maia »

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

Código: Selecionar todos

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 do usuário
Trazom
Usuário Nível 3
Usuário Nível 3
Mensagens: 277
Registrado em: 14 Ago 2003 01:01
Localização: Maceió/AL

como imprimir em modo console ?

Mensagem por Trazom »

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 do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

como imprimir em modo console ?

Mensagem por Itamar M. Lins Jr. »

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.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Trazom
Usuário Nível 3
Usuário Nível 3
Mensagens: 277
Registrado em: 14 Ago 2003 01:01
Localização: Maceió/AL

como imprimir em modo console ?

Mensagem por Trazom »

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 do usuário
Trazom
Usuário Nível 3
Usuário Nível 3
Mensagens: 277
Registrado em: 14 Ago 2003 01:01
Localização: Maceió/AL

como imprimir em modo console ?

Mensagem por Trazom »

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 do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

como imprimir em modo console ?

Mensagem por Itamar M. Lins Jr. »

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.

Código: Selecionar todos

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.
Saudações,
Itamar M. Lins Jr.
paiva
Usuário Nível 3
Usuário Nível 3
Mensagens: 300
Registrado em: 04 Ago 2005 10:28

como imprimir em modo console ?

Mensagem por paiva »

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]
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

como imprimir em modo console ?

Mensagem por JoséQuintas »

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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder