Como definir tamanho de fontes para impressão na Win32prn
Moderador: Moderadores
-
andrelucass
- Usuário Nível 3

- Mensagens: 145
- Registrado em: 25 Fev 2005 10:40
Como definir tamanho de fontes para impressão na Win32prn
Blz a todos
Gostaria de saber quais são os tipos de fontes pra imprimir usando a Win32prn:
80 caracteres a 10 cpi
96 caracteres a 12 cpi
138 caracteres a 17 cpi
160 caracteres a 20 cpi
Atenciosamente
André Lucas
Gostaria de saber quais são os tipos de fontes pra imprimir usando a Win32prn:
80 caracteres a 10 cpi
96 caracteres a 12 cpi
138 caracteres a 17 cpi
160 caracteres a 20 cpi
Atenciosamente
André Lucas
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Como definir tamanho de fontes para impressão na Win32pr
Abra um word selecione a font e veja o tamanho que lhe agrada e coloque na:andrelucass escreveu:Blz a todos
Gostaria de saber quais são os tipos de fontes pra imprimir usando a Win32prn:
80 caracteres a 10 cpi
96 caracteres a 12 cpi
138 caracteres a 17 cpi
160 caracteres a 20 cpi
Atenciosamente
André Lucas
Código: Selecionar todos
ex:
setfont('Courier New',,17,,,,255)Código: Selecionar todos
SetFont(cFontName, nPointSize, nWidth, nBold, lUnderline, lItalic, nCharSet)
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
-
leandrolinauer
- Usuário Nível 3

- Mensagens: 413
- Registrado em: 16 Out 2006 10:59
- Localização: Paranaíba-MS
Boa tarde, aproveitando o bonde eu estou usando a configuração desta forma, que peguei aqui no forum, mas no entanto todos os relatorios pulam 5 caracteres para a linha de baixo ficando em duas linhas, de toda forma que tentei não consegui fazer ficar em uma linha apenas, só mudando o relatório tirando 5 caracteres, alguem tem uma solução para isto,
Grato.
[/code]
Grato.
Código: Selecionar todos
oPrinter:New(cPrinter) //pega a escolhida
oPrinter:Landscape:=.F. //VERTICAL .T. HORIZONTAL
oPrinter:FormType :=1 //9 //9 //12 // letter
oPrinter:Copies :=1
oPrinter:Create()
oPrinter:StartDoc()
oPrinter:SetDefaultFont()
If TamRel>80
oPrinter:SetFont(,,17,,,,255)
Else
oPrinter:SetFont(,,06,,,,255)
EndIf
oPrinter:TextOut(Space(tamrel),.T.)
cTexto :=MemoRead(cArq)
nLinhas :=mLCount(cTexto,tamrel,1,.F.)
For nA := 1 To nLinhas
cLinha:=MemoLine(cTexto,tamrel,nA,1,.F.)
If Left(AllTrim(cLinha),1)==Chr(12) //SALTO_PAGINA
oPrinter:NewPage()
Else
oPrinter:TextOut(cLinha,.T.)
EndIf
Next
oPrinter:EndDoc()
oPrinter:Destroy()
Return NIL
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
-
leandrolinauer
- Usuário Nível 3

- Mensagens: 413
- Registrado em: 16 Out 2006 10:59
- Localização: Paranaíba-MS
Boa tarde,
-:]
Sim estou gerando a impressão a partir de um arquivo texto, visto que já tenho todos os relatorios montados como abaixo:
"
TENHO PROBLEMA COM A LARGURA DO RELATORIO, MUDEI oprinter:FormType :=1 //9 //9 //12 // letter = 1 , USEI 9, 12, 18, 1 E TODOS SÃO IGUAIS NÃO ALTEROU NADA NA LARGURA DO FORMULARIO e TBEM O PROBLEMA DE O RELATORIO EJECTAR A FOLHA ANTES DE IMPRIMIR.
"
Ps: CAIXA ALTA, é desespero, hehehehe, pois se eu tiver que mudar todos os relatorios para retirar 5 caracter por linha, estarei lascado. hehhee.
:'(
Grato por enquanto.
-:]
Sim estou gerando a impressão a partir de um arquivo texto, visto que já tenho todos os relatorios montados como abaixo:
"
TENHO PROBLEMA COM A LARGURA DO RELATORIO, MUDEI oprinter:FormType :=1 //9 //9 //12 // letter = 1 , USEI 9, 12, 18, 1 E TODOS SÃO IGUAIS NÃO ALTEROU NADA NA LARGURA DO FORMULARIO e TBEM O PROBLEMA DE O RELATORIO EJECTAR A FOLHA ANTES DE IMPRIMIR.
"
Ps: CAIXA ALTA, é desespero, hehehehe, pois se eu tiver que mudar todos os relatorios para retirar 5 caracter por linha, estarei lascado. hehhee.
:'(
Código: Selecionar todos
Static Procedure Imprime
ShowWait(,,"Imprimindo Na Sa¡da Padr„o...")
c_Imprime() //esta função gera o arquivo abaixo em texto
WPag:=0
Set Device To Print
Set Printer To &cP_Printer.
DbGoTop()
Do While !Eof()
Cabecalho(,Titulo,"Per¡odo De.: " +DtoC(WInicial)+" A "+DtoC(WFinal) +OrdemArq+If(wJR=.T.," Com Juros",""))
If wPag=1
@ PRow()+01,00 Say "Cliente...: "+wCod +" "+If(WCod #"99999",Abreviate(NOME,30),"Clientes Em Geral")
@ PRow()+01,00 Say "Vendedor..: "+wVend +" "+If(WVend #"9999" ,Abreviate(CDUP0600->VENDEDOR,30),"Vendedores Em Geral")
@ PRow()+01,00 Say "Caixa.....: "+wCx +" "+If(WCx #"99" ,Abreviate(CDOC0400->NOME,30),"Caixas Em Geral")
@ PRow()+01,00 Say "Cidade....: "+wCid +" "+If(WCid #"9999" ,Abreviate(CDUP0800->CIDADE,30),"Cidades Em Geral")
@ PRow()+01,00 Say "Cobrador..: "+wCobra+" "+If(WCobra#"9999" ,Abreviate(CDOC0600->COBRADOR,30),"Cobradores Em Geral")
@ PRow()+01,00 Say "Mercadoria: "+wMerc +" "+If(WMerc#"9999999","Mercadoria Especifica","Mercadorias Em Geral")
@ PRow()+01,00 Say Repl("Ä",80)
EndIf
If wType=="E".And.wOd#"C"
// @ PRow()+01,00 Say CHR(15)+"Codigo Cliente Documento Pc/Qt Nota Vend Banc Emissao S Vencimento Nat Valor Basico% N_Basico% Obs "+CHR(18) //tirei por causa dos CHR, DEIXEI SEM PARA COMEÇO
@ PRow()+01,00 Say "Codigo Cliente Documento Pc/Qt Nota Vend Banc Emissao S Vencimento Nat Valor Basico% N_Basico% Obs "
ElseIf wType=="E".And.wOd=="C"
// @ PRow()+01,00 Say CHR(15)+"Codigo Cliente Documento Pc/Qt Nota Vend Banc Cobran‡a S Vencimento Nat Valor Endere‡o do cliente "+CHR(18)
@ PRow()+01,00 Say "Codigo Cliente Documento Pc/Qt Nota Vend Banc Cobran‡a S Vencimento Nat Valor Endere‡o do cliente "
Else
// @ PRow()+01,00 Say CHR(15)+"Codigo Cliente Documento Pc/Qt Nota Vend Banc Emissao S Vencimento Nat Valor pagamento Valor pago"+CHR(18)
@ PRow()+01,00 Say "Codigo Cliente Documento Pc/Qt Nota Vend Banc Emissao S Vencimento Nat Valor pagamento Valor pago"
EndIf
@ PRow()+01,00 Say Repl("Ä",80)
While !Eof() .And. PRow() < 60
ShowWaitProc(.T.)
@ PRow()+01,00 Say "" //Chr(15) DESATIVEI OS CHR
@ PRow() ,PCol() Say CODIGO
@ PRow() ,PCol()+01 Say Abreviate(NOME,20)
@ PRow() ,PCol()+01 Say NDOC
@ PRow() ,PCol()+01 Say NPARC+"/"
@ PRow() ,PCol() Say QTE
@ PRow() ,PCol()+01 Say Left(NOTA,15)
@ PRow() ,PCol()+01 Say VEND
@ PRow() ,PCol()+01 Say BANCO
@ PRow() ,PCol()+01 Say If(wType=="E".And.wOd=="C",DT_COBRA,DT_EMI)
@ PRow() ,PCol()+01 Say SITUACAO //Left(ShowSit(SITUACAO),5)
@ PRow() ,PCol()+01 Say DT_VENC
@ PRow() ,PCol()+01 Say Left(ShowNat(TP_DOC),2)
@ PRow() ,PCol()+01 Say VALOR Pict "@E 99,999,999.99"
If wType=="E".And.wOd#"C"
@ PRow() ,PCol()+01 Say BASICO //Pict "@E 999.9999%"
@ PRow() ,PCol()+01 Say DESCONTO //Pict "@E 999.9999%"
@ PRow() ,PCol()+01 Say Abreviate(OBS,05)
ElseIf wType=="E".And.wOd=="C"
@ PRow() ,PCol()+01 Say Abreviate(ENDERECO,25)
Else
@ PRow() ,PCol()+01 Say DT_PAGTO
@ PRow() ,PCol()+01 Say VR_PAGO Pict "@E 999,999,999.99"
EndIf
// @ PRow() ,PCol() Say Chr(18)
DbSkip(1)
End
If !Eof()
Rodape()
EndIf
EndDo
@ PRow()+01,00 Say Repl("Ä",80)
@ PRow()+01,00 Say "Total:"
@ PRow() ,Pcol()+82 Say VParc Pict "@E 999,999,999,999.99"
If wType=="L"
@ PRow(),PCol()+8 Say VPago Pict "@E 999,999,999,999.99"
EndIf
//@ PRow() ,120 Say "" //Chr(18)
Rodape()
Set Printer To
Set Device To Screen
Set Cursor Off
CloseWindow()
e_Imprime() //ESTA FUNCÇÃO LE O ARQUIVO TEXTO EXPECIFICO E MANDA ELE PARA A IMPRESSORA
Return
Function c_Imprime
cP_Printer:=wD_Retorno+"IMPRESS.PRN" //POR ENQUANTO UM UNICO NOME, MAS TEREI QUE FAZER DIFERENTE PARA CADA MAQUINA PARA PODER USAR EM REDE
Return .T.
Function e_Imprime(aLn)
aLn:=If(aLn=Nil,132,aLn)
If Right(cP_Printer,11)=="IMPRESS.PRN"
If MyPrinters() //esta funcao escolhe qual impressora que eu quero que esta instalada o pc e passa na variavel de sistema cPrinter para a função abaixo
ImprimeGeral(wD_Retorno+"IMPRESS.PRN",aLn) //ESTA É A FUNCAO
FErase(wD_Retorno+"IMPRESS.PRN")
EndIf
cP_Printer:="Lpt1"
EndIf
Return .T.
Function ImprimeGeral(cArq,tamrel) // arquivo e tamanho da linha
Local cTexto, nLinhas, nA, cLinha, oPrinter := win32prn()
oPrinter:New(cPrinter) //pega a escolhida por MyPrinter
oPrinter:Landscape:=.F. //VERTICAL .T. HORIZONTAL
oPrinter:FormType :=1 //9 //9 //12 // letter = 1
oPrinter:Copies :=1
oPrinter:Create()
oPrinter:StartDoc()
oPrinter:SetDefaultFont()
If TamRel>80
oPrinter:SetFont(,,20,{3,-50}) //ESTOU TESTANDO COM ESTA SUPER COMPRIMIDA E NADA DEU CERTO, CONTINUA ULTRAPASSANDO 5 CARACTERES PARA LINHA DE BAIXO.
Else
oPrinter:SetFont(,,06,,,,255)
EndIf
oPrinter:TextOut(Space(tamrel),.T.)
cTexto :=MemoRead(cArq)
nLinhas :=mLCount(cTexto,tamrel,1,.F.)
For nA := 1 To nLinhas
cLinha:=MemoLine(cTexto,tamrel,nA,1,.F.)
If Left(AllTrim(cLinha),1)==Chr(12) //SALTO_PAGINA
oPrinter:NewPage()
Else
oPrinter:TextOut(cLinha,.T.)
EndIf
Next
oPrinter:EndDoc()
oPrinter:Destroy()
Return NIL
Function MyPrinters()
Local aRet:=.F.
Local nPrn:=1
Local aPrn:=GetPrinters()
Local Ls:=03,Cs:=20,Li:=15,Ci:=60
Set Key -5 To
If !Empty(aPrn)
OpenWindow(Ls,Cs,Li,Ci,"Escolha a impressora","","GR+/R")
If ((nPrn:=Achoice(Ls+3,Cs+2,Li-1,Ci-2,aPrn,.T.,"UserFuncTec"))!=0)
cPrinter:=aPrn[nPrn]
If cPrinter=="Imprimir para arquivo"
iFile() //gera em nome de texto para ser enviado via email
EndIf
aRet:=.T.
EndIf
CloseWindow()
Else
ShowMessage(,,"NÆo h impressoras instaladas",0)
EndIf
Set Key -5 To MyPrinters()
Return aRet
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
-
leandrolinauer
- Usuário Nível 3

- Mensagens: 413
- Registrado em: 16 Out 2006 10:59
- Localização: Paranaíba-MS
Boa noite 
Amanha talvez entrarei no meu msn, mas não sei que horas que poderei fazer isto.
Se puder me enviar um email para mim do exemplo, ficaria mais fácil.
leandrolinauer@hotmail.com
Grato pela atenção e ajuda.
Ps: estou precisando urgente de uma solução rápida para este problema.
:'(
Amanha talvez entrarei no meu msn, mas não sei que horas que poderei fazer isto.
Se puder me enviar um email para mim do exemplo, ficaria mais fácil.
leandrolinauer@hotmail.com
Grato pela atenção e ajuda.
Ps: estou precisando urgente de uma solução rápida para este problema.
:'(
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
-
leandrolinauer
- Usuário Nível 3

- Mensagens: 413
- Registrado em: 16 Out 2006 10:59
- Localização: Paranaíba-MS
-
leandrolinauer
- Usuário Nível 3

- Mensagens: 413
- Registrado em: 16 Out 2006 10:59
- Localização: Paranaíba-MS
Boa tarde.
Já havia conseguido fazer ontem o uso da hwgui no sistema usando as funções MSGINFO(), MSGYESNO() e etc, só que mais tarde começou dar um erro de HB_STACK reference from LIBCT, aí já não consegui mais usar, eu já estava ficando feliz que coloquei as mensagens e perguntas em formato windows, depois só faltava os campos de digitação aí deparei-me com este problemão.
Já tentei várias modificações no BRMAKE.INI e no MLK mas não obtive exito.
Poderia me auxiliar neste problema, o que poderia haver de errado, ou tem algo errado com o BRMAKE (gostei dele é simples para montar), HBMAKE (achei meio complicado).
No aguardo.
Grato amigo. :)Pos
Já havia conseguido fazer ontem o uso da hwgui no sistema usando as funções MSGINFO(), MSGYESNO() e etc, só que mais tarde começou dar um erro de HB_STACK reference from LIBCT, aí já não consegui mais usar, eu já estava ficando feliz que coloquei as mensagens e perguntas em formato windows, depois só faltava os campos de digitação aí deparei-me com este problemão.
Já tentei várias modificações no BRMAKE.INI e no MLK mas não obtive exito.
Poderia me auxiliar neste problema, o que poderia haver de errado, ou tem algo errado com o BRMAKE (gostei dele é simples para montar), HBMAKE (achei meio complicado).
No aguardo.
Grato amigo. :)Pos
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Isso não é problema do MAKE e sim com a versão do xharbour, ou seja vc deve esta linkando alguma LIB compilada ex: com uma versão (9960 ou 9970) e usando a mesma LIB no xharbour 1.0.0. isso foi só um exemplo, resumindo vc tem que usar as LIB compiladas com sua versão de xharbour.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
-
leandrolinauer
- Usuário Nível 3

- Mensagens: 413
- Registrado em: 16 Out 2006 10:59
- Localização: Paranaíba-MS
Bom dia.
Realmente é isto mesmo, mas eu baixei a versão xHarbour 1.0.0 e compilei a HwGui com esta versão a CTLIB faz parte da xHarbour e ela esta normal enquanto não compilo com a HwGui, assim que coloco ela para compilar da erro STACK referenciando a CTLIB, pode ser que a versão 1.0.0 do xHarbour não esteja plenamente boa.
Vou testar com a versão 0.99.60 e ver no que dá, o engraçado que de primeira tudo deu certo e no mesmo dia umas horas depois começou este erro, sendo que não havia mexido mais no xHarbour nem HwGui somente no meu sistema, inserindo novos comando da HwGui, e agora mesmo tirando todos continua dando este erro. :'(
Grato por enquanto, assim que der certo relato aqui minha experiência.
T+ :xau
Realmente é isto mesmo, mas eu baixei a versão xHarbour 1.0.0 e compilei a HwGui com esta versão a CTLIB faz parte da xHarbour e ela esta normal enquanto não compilo com a HwGui, assim que coloco ela para compilar da erro STACK referenciando a CTLIB, pode ser que a versão 1.0.0 do xHarbour não esteja plenamente boa.
Vou testar com a versão 0.99.60 e ver no que dá, o engraçado que de primeira tudo deu certo e no mesmo dia umas horas depois começou este erro, sendo que não havia mexido mais no xHarbour nem HwGui somente no meu sistema, inserindo novos comando da HwGui, e agora mesmo tirando todos continua dando este erro. :'(
Grato por enquanto, assim que der certo relato aqui minha experiência.
T+ :xau
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
Alguém sabe o tamanho da fonte para 96 COLUNAS???
Jânio
Jânio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
