Duvidas com Win_Prn() / Impressora PDF

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Duvidas com Win_Prn() / Impressora PDF

Mensagem por asimoes »

Pessoal,

Fiz um relatório usando Win_Prn() a duvida que eu tenho é a seguinte, fazendo a impressão direto para a impressora sai certo nas margens definidas, agora se eu mando para uma impressora pdf, tipo pdfcreator ou qq outra impressora pdf não sai corretamente nas margens. Tem alguma configuração extra ?
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Duvidas com Win_Prn() / Impressora PDF

Mensagem por lugab »

Eu peguei uma solução aqui no fórum, Asimoes. Determina primeiro o número de caracteres por polegada e monta o Setfont() com esse número.... cai certinho no PDF

Código: Selecionar todos

*-----------------------------------------
FUNCTION impWinPrint(cPrinter,xarqtxt) 
*-----------------------------------------
#define DMPAPER_A4                   9  // A4 210 x 297 mm 
LOCAL oPrinter:= Win_Prn():New(cPrinter), aFonts, x, nColFixed,nColTTF, nColCharSet
LOCAL ncarpol, i, nHandle, cString
.
.
.
nhandle:= fopen( xarqtxt ) // read
cstring:= ""
xmaxlen:= 0
for i:= 1 to 10
    IF gfreadline( @cString, nHandle )
        IF LEN( cString ) > xmaxLen
            xmaxLen:= LEN( cString )
        endif
    else
        exit
    endif
next
if xmaxlen <= 85
    ncarpol:= 12 
elseif xmaxlen <= 100
    ncarpol:= 13 
elseif xmaxlen <= 136
    ncarpol:= 18 
elseif xmaxlen <= 160
    ncarpol:= 20 
elseif xmaxlen <= 190
    ncarpol:= 25
endif
oPrinter:SetFont('Courier New',,ncarpol)

lugab
Responder