Estou tentando imprimir uma linha usando caracteres graficos: chr(218) chr(196) chr(194) chr(197)
com a intenção de formatar linhas graficas.
Quando eu crio um arquivo txt e imprimo a partir do arquivo sai tudo ok, mas quando eu tento imprimir direto do programa usando o oPrinter:TextOut sai uns caracteres diferentes.
Pode me ajudar nesse caso.
Lócio
Imprimir Caracteres graficos tipo CHR(218)
Moderador: Moderadores
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Imprimir Caracteres graficos tipo CHR(218)
Olá Locio,
Você deve está usando WIN32PRN para imprimir, essa classe imprime não imprime esses carácter ASCII , para isso você deve usar os métodos disponível na classe, veja o exemplo do post abaixo:
viewtopic.php?f=4&t=6465&hilit=win32prn
Você deve está usando WIN32PRN para imprimir, essa classe imprime não imprime esses carácter ASCII , para isso você deve usar os métodos disponível na classe, veja o exemplo do post abaixo:
viewtopic.php?f=4&t=6465&hilit=win32prn
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Imprimir Caracteres graficos tipo CHR(218)
Procure por oPrinter:Box, nunca usei mas acho que faz isso, mas lembre tudo no modo gráfico. Pois WIN32PRN imprime no formato ANSI e não UNICODE como estávamos acostumado com o Clipper. E as medidas não são sempre iguais para todas as impressoras, pois diferem e terá que fazer sempre ajustes.
Box(nX1, nY1, nX2, nY2, nWidth, nHeight)
Box(nX1, nY1, nX2, nY2, nWidth, nHeight)
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Imprimir Caracteres graficos tipo CHR(218)
Olá Pablo,Pablo César escreveu:E as medidas não são sempre iguais para todas as impressoras, pois diferem e terá que fazer sempre ajustes.
É só pensar nas impressoras como uma tela, quando você desenvolve um Aplicativo Gui ele parte para um principio de uma resolução ou você automatiza para várias resolução usando uma regra de 3, onde você vê os limites de impressão(telas) e calcula onde sairá no mesmo lugar em todas as impressoras(resoluções).
viewtopic.php?f=4&t=8247&p=46763&hilit=regra+de+3#p46763
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Imprimir Caracteres graficos tipo CHR(218)
Claro, em outras palavras... muito complicado, fazer isso em modo gráfico. Teria que calcular a área de impressão, dependendo tamanho do papel, margens e determinar a densidade de pixel a impressora comporta ou está habilitada e ainda atribuir a toda a impressão seus valor x,y e com cada resolução. Na minha opinião, melhor fazer em modo texto ou criar em pdf...
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Imprimir Caracteres graficos tipo CHR(218)
Que nada, bobagem isso, é moleza fazer de fazer, precisa apenas usar a cabeça um pouquinho e ter logica e está aberto para evoluir.Pablo César escreveu:Claro, em outras palavras... muito complicado, fazer isso em modo gráfico. Teria que calcular a área de impressão, dependendo tamanho do papel, margens e determinar a densidade de pixel a impressora comporta ou está habilitada e ainda atribuir a toda a impressão seus valor x,y e com cada resolução. Na minha opinião, melhor fazer em modo texto ou criar em pdf...
nALT_PAG:=oPrinter:PageHeight
nLARG_PAG:=oPrinter:PageWidth
Depois que tem as coordenadas acima basta seguir o relatório baseado nessas duas resoluções.
oBMP:=W32BMP():new()
oBmp:loadFile( cArq )
PYF:=(p1*1000)/nALT_PAG
PXF:=(p2*1000)/nLARG_PAG
YF:=nALT_PAG*(PYF/100)
XF:=nLARG_PAG*(PXF/100)
PYI:=1500/nALT_PAG
PXI:=1500/nLARG_PAG
YI:=nALT_PAG*(PYI/100)
XI:=nLARG_PAG*(PXI/100)
oBmp:Draw( oPrinter, {XI ,oPrinter:POSY+YI ,IIF(XF > 2000,2000,XF),IIF(YF > 2000,2000, YF)} )
Claro que acima foi baseado nos tamanhos das minhas imagens, mas depois que criar a regra de onde começa o TOP e onde começa o LEFT e tem os seus limites de resolução nada mais é difícil, é apenas matemática.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Imprimir Caracteres graficos tipo CHR(218)
Obrigado pelo esclarecimento, Leonardo. Claro que eu ainda não testei (deveria ainda) só para sentir na prática e matar dúvidas. Pois eu como não tenho prática quase alguma em impressão gráfica: tudo parece-me bicho de 7 cabeças... mas estou contigo também em: "basta ter logica (isso qq programador teria q ter e vontade tbm) e está aberto para evoluir" (aprender coisas novas). Vlw !
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
