Boa tarde...
Evandro...
Você pode usar do jeito que usava, mas aà não vai evoluir..
O que muda então? você pode usar qualquer impressora instalada no windows, direto nela sem programas externos. O que acontece é que você tem que saber se a impressão é raw ou gráfica (spooler). Para ficar mais fácil pensa assim, impressora matricial e mini impressora, térmica ou não é raw já as laser e jato de tinta mais moderna ( da hp1132, hp1102, brother etc) são gráficas, spooler.
AÃ fica assim:
Impressora matricial você usa o winprintfileraw(). Usa os mesmos relatórios que tem hoje, mas tem que gerar o relatório em um txt e no final do relatorio manda esse txt na função WinprintFileraw(). Usa os mesmos comandos que você usava no clipper para negrito, sublinhado e etc, não precisa mudar a formatação.
Agora se a impressora é laser ou jato (gráfica) aà tem que usar a função da minigui para impressão gráfica.
Eu adaptei uma função (na realidade várias funções) que quando manda imprimir e escolhe a impressora, a própria função define se é matricial (raw) ou gráfica. Se for matricial manda direto para impressora se for gráfica gera o pdf e visualiza para impressão.
De toda forma tem que gerar o relatório em TXT.
a função que tô falando quando a impressora é gráfica, a função lê os comandos esc/p (chr) e aumenta/diminui e coloca comando negrito, expandido, condensado simulando a impressora raw(matricial).
O Sistema de impressão da impressora gráfica é diferente da matricial porque você precisa posicionar em pixels e na matricial é sequencial linha,coluna.
Veja o exemplo de um orçamento gerado pela função.
link da função
http://www.pctoledo.com.br/forum/viewtopic.php?f=4&t=18184&p=114739&hilit=printfileraw#p114739Rubens