Ver Mensaje Individual
  #8  
Antiguo 22-09-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Reputación: 10
marcoszorrilla Va por buen camino
Yo uso esta función y le paso simplemente las medidas:

Código Delphi [-]
  
  
  procedure SetPaperSize (intAlto,intAncho : Integer);
  {aqui se define el tamaño del papel}
  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;

Las medidas deben pasarsen en 0,1 mm, es decir por ejemplo un tamaño de 21cm debiera pasarse como 2100.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita