Hola nuevamente.
En mi tema anterior les comentaba que necesitaba imprimir un comprovante de venta con los datos del cliente y los productos que compro. El tique debe ser de una medida de 75 por 75 mm.
El moderador me dio un codigo donde podia entrar el tamanno del papel, pero lo que le paso son dos integer, como puedo hacer para llevar estas medidas en milimetros a integer?
El codigo es:
Código Delphi
[-]procedure SetPaperSize (intAlto,intAncho : Integer);
var
ADevice, ADriver, APort : array [0..255] of Char;
ADeviceMode : THandle;
DevMode : PDevMode;
begin
with Printer do
begin
GetPrinter (ADevice, ADriver, APort, ADeviceMode);
SetPrinter (ADevice, ADriver, APort, 0);
GetPrinter (ADevice, ADriver, APort, ADeviceMode);
DevMode := GlobalLock(ADeviceMode);
if not Assigned(DevMode) then
ShowMessage('Ha entrado en -> if not Assigned(DevMode) ...')
else
begin
with DevMode^ do
begin
dmPaperSize:= DMPAPER_User;
dmPaperLength := intAlto;
dmPaperWidth:= intAncho;
dmFields := dmFields or DM_PAPERSIZE or DM_PAPERLength or DM_PAPERWidth;
end;
GlobalUnLock(ADeviceMode);
SetPrinter(ADevice, ADriver, APort, ADeviceMode);
end;
end;
end;
Por otra parte, a la hora de pasarle al canvas lo que quiero imprimir, que copordenas les debo pasar para que se ajusten a mi papel. En caso de que la linea sobrepase la hoja que ocurre? Da un salto de linea o me corta lo que deseo escribir???
Por jemplo: Printer.Canvas.TextOut(90, 90, LbComprobanteTexto.Caption);
Muchas gracias a todos.
Yunier.