Gerador de relatorios em impressoras matriciais com TPrinter

Delphi

05/02/2003

Olá Galera....

Estou precisando de ajuda. Estou criando um gerador de lay outs para relatorios em impressoras matriciais usando DRIVER GENÊRICO/SOMENTE TEXTO e o TPrinter. O meu problema é que defino o tamanho do papel mas quando vou passar as posições ele não tem uma medida exata sendo assim não consigo imprimir corretamente com nenhuma medida (pixel, milimetros, centimetros.). Gostaria de saber se alguem já fez algo parecido e pode me dar uma mão...
O codigo para definir o tamanho da página é esse:
procedure DefineTamanhoPapel(Width : integer; Length : integer);
var
Device : array[0..255] of char;
Driver : array[0..255] of char;
Port : array[0..255] of char;
hDMode : THandle;
PDMode : PDEVMODE;
begin
Printer.GetPrinter(Device, Driver, Port, hDMode);

If hDMode <> 0 then
begin
pDMode := GlobalLock( hDMode );
If pDMode <> nil then
begin
pDMode^.dmPaperSize := DMPAPER_USER;
pDMode^.dmPaperWidth := 4000; (22,5cm)
pDMode^.dmPaperLength := 3175; (16,5cm)
pDMode^.dmFields := pDMode^.dmFields or DM_PAPERSIZE;
end;
GlobalUnlock( hDMode );
end;
end;

Se eu ficar tentando até acertar o lugar que vai sair, blz ai consigo definir a posição, só que preciso passar as posições, pois o usuário poderá mudar a qualquer momento as posições no relatório.

Obrigado


Anonymous

Anonymous

Curtidas 0
POSTAR