Quizás el problema es que a la hora de mandarle a imprimir no encuentra la impresora al ser una impresora de Red, por otra parte el problema del idioma me lleva a pensar que el nombre de la impresora quizás no sea el mismo.
Porque no creas una rutina o función que te muestre las impresoras del sistema eliges una y luego lanzas el TextOut.
Mira este ejemplo, que yo suelo utilizar, aunque aquí la impresora ya la he guardado en una tabla y lo que hago es al mandar imprimir la vuelve a buscar en el sistema para asegurarse de que sigue existiendo.
Código Delphi
[-]
Function GetImpresora(Impre:String):Integer;
Var
nCont:Integer;
lSearch:Boolean;
cNewLIne:String;
begin
lSearch:=False;
cNewLine:=Chr(10)+Chr(13);
For nCont:=0 to Printer.Printers.Count - 1 do
begin
if Pos(impre, Printer.Printers[nCont]) <> 0 then
begin
lSearch:=True;
Result:=nCont;
Break;
end;
end;
if lSearch = False then
begin
Result:=-1;
ShowMessage('Impresora no encontrada:'+cNewLine+Impre+cNewLine+'Se utilizará la predefinida.');
end;
end;
......
procedure TfrRepara.SpeedButton2Click(Sender: TObject);
begin
if Not DmAni.Impres.Locate('Impresora',Dmani2.ConfImprefacturas.Value,[]) then
DmAni.Impres.First;
Printer.PrinterIndex:=GetImpresora(DmAni2.ConfLptFacturas.value);
SetPaperSize(DmAni2.ConfAltoPapelFacturas.Value,Dmani2.ConfAnchoPapelFactuas.Value);
With Printer.Canvas do
begin
Printer.BeginDoc;
CabeceraRepara();
DetalleRepara();
Printer.EndDoc;
end;
end;
Tschüss.