Jhonas Postado Julho 17, 2010 Denunciar Share Postado Julho 17, 2010 Usando o PageSetupDialog1 para definir as margens do RichEdit para impressãouses Printers; (* Setar as margens do RichEdit em Polegadas (1 polegada = 2.54 cm) para a impressora ativa *) procedure SetRichEditMargins( const mLeft, mRight, mTop, mBottom: extended; const re : TRichEdit); var ppiX, ppiY : integer; spaceLeft, spaceTop : integer; r : TRect; begin // pixels por polegadas ppiX := GetDeviceCaps(Printer.Handle, LOGPIXELSX); ppiY := GetDeviceCaps(Printer.Handle, LOGPIXELSY); // não imprimir margens spaceLeft := GetDeviceCaps(Printer.Handle, PHYSICALOFFSETX); spaceTop := GetDeviceCaps(Printer.Handle, PHYSICALOFFSETY); //calcular as margens R.Left := Round(ppiX * mLeft) - spaceLeft; R.Right := Printer.PageWidth - Round(ppiX * mRight) - spaceLeft; R.Top := Round(ppiY * mTop) - spaceTop; R.Bottom := Printer.PageHeight - Round(ppiY * mBottom) - spaceTop; // setar as margens re.PageRect := r; end; procedure TForm1.Button1Click(Sender: TObject); var MEsq, MDir, MSup, MInf : real; begin {Estilo = RETRATO Margem Esquerda = 25 Margem Direita = 20 Margem Superior = 20 Margem Inferior = 20} if PageSetupDialog1.Execute then begin Printer.Orientation := poPortrait; // vertical MEsq := (PageSetupDialog1.MarginLeft / 2.54)/1000; MDir := (PageSetupDialog1.MarginRight / 2.54)/1000; MSup := (PageSetupDialog1.MarginTop / 2.54)/1000; MInf := (PageSetupDialog1.MarginBottom / 2.54)/1000; SetRichEditMargins(MEsq, MDir, MSup, MInf, richEdit1); richEdit1.Print('Printing with margins'); end; end;abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Jhonas
Usando o PageSetupDialog1 para definir as margens do RichEdit para impressão
abraço
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.