Página 1 de 1
como imprimir em modo console ?
Enviado: 15 Dez 2021 10:40
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 ?
como imprimir em modo console ?
Enviado: 15 Dez 2021 12:06
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
como imprimir em modo console ?
Enviado: 15 Dez 2021 20:49
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
como imprimir em modo console ?
Enviado: 15 Dez 2021 22:02
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.
como imprimir em modo console ?
Enviado: 15 Dez 2021 22:28
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.!
como imprimir em modo console ?
Enviado: 15 Dez 2021 23:28
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
como imprimir em modo console ?
Enviado: 17 Dez 2021 10:44
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.
como imprimir em modo console ?
Enviado: 18 Dez 2021 08:10
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]
como imprimir em modo console ?
Enviado: 20 Dez 2021 08:21
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.