Ver Mensaje Individual
  #2  
Antiguo 26-05-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Reputación: 25
__cadetill Va por buen camino
Hola fanon

Normalmente los visores necesitan de un codigo de escape para inicializarlos (o a lo mejor llevan algun programa o driver para ello). Mirate la documentacion a ver.

De todas maneras, para crear una impresora seria algo asi

Código:
Procedure AddImpresora( PrinterName, PortName, DriverName,
                      PrintProcessor: string );
var
   pName    : PChar;
   Level    : DWORD;
   pPrinter : PPrinterInfo2;
begin
     pName := nil;
     Level := 2;
     New(pPrinter);
     try
        pPrinter^.pServerName := nil;
        pPrinter^.pShareName := nil;
        pPrinter^.pComment := nil;
        pPrinter^.pLocation := nil;
        pPrinter^.pDevMode := nil;
        pPrinter^.pSepFile := nil;
        pPrinter^.pDatatype := nil;
        pPrinter^.pParameters := nil;
        pPrinter^.pSecurityDescriptor := nil;
        pPrinter^.Attributes := 0;
        pPrinter^.Priority := 0;
        pPrinter^.DefaultPriority := 0;
        pPrinter^.StartTime := 0;
        pPrinter^.UntilTime := 0;
        pPrinter^.Status := 0;
        pPrinter^.cJobs := 0;
        pPrinter^.AveragePPM :=0;

        pPrinter^.pPrinterName := PCHAR(PrinterName);
        pPrinter^.pPortName := PCHAR(PortName);
        pPrinter^.pDriverName := PCHAR(DriverName);
        pPrinter^.pPrintProcessor := PCHAR(PrintProcessor);
        // 1802 -> Este código de Error nos indica que la impresora ya existe.
        if (AddPrinter(pName, Level, pPrinter) = 0) and (GetlastError <> 1802) then
        begin
             Raise Exception.Create('La Impresora no se pudo crear');
        end;
     finally
            Dispose(pPrinter);
     end;
end;
Lo malo del método es que necesitas tener los drivers de la impresora en el sistema

Espero te sirva
Responder Con Cita