Uso D6.
Tengo una aplicación para imprimir Facturas en una impresora matricial, tengo la siguiente función para mandar a imprimir en la impresora dependiendo del nombre de la misma:
Código Delphi
[-]
function SpoolFile(const FileName, PrinterName: string): Integer;
var
Buffer: record
JobInfo: record Path: PChar;
JobID: DWORD;
end;
PathBuffer: array[0..255] of Char;
end;
SizeNeeded: DWORD;
Handle: THandle;
PrtName: string;
ok: Boolean;
begin
PrtName := PrinterName;
if PrtName = '' then
PrtName := Printer.Printers[Printer.PrinterIndex]; ok := False;
if OpenPrinter(PChar(PrtName), Handle, nil) then
if AddJob(Handle, 1, @Buffer, SizeOf(Buffer), SizeNeeded) then
if CopyFile(PChar(FileName), Buffer.JobInfo.Path, True) then
if ScheduleJob(Handle, Buffer.JobInfo.JobID) then
ok := True;
if not ok then
Result := GetLastError
else
Result := 0;
end;
Tengo 6 PC's con Win98 que mandan a imprimir sin Problemas, pero al poner una PC's con WinXP se vinieron los problemas con esta función, el problema se presentan en las demás PC's que mandan a través de la RED la impresión, LOCALMENTE en WinXp no hay problema, es decir cuando la doy de alta la impresora en una PC's en RED WinXp le agrega el siguiente nombre
FACTURAS en SERVIDOR con ese nombre mando como parámetro a la función y no manda nada, le mando también como
\\Servidor\Facturas y tampoco, le mando como
FACTURAS y menos, por lo que ando investigando como mandar a imprimir en WinXP a través de la red.
Agradezco cualquier sugerencia.