PDA

Ver la Versión Completa : Solo texto + w2000 no imprime bien.¿Porque?


josemmerida
10-12-2003, 19:35:04
Estoy desesperado.

Tengo un monton de maquinas con W98 o W95 con un
programa que imprime en impresoras Generica/Solo texto con figuradas en lo basico como IB. Cambio de tamaños de letra, saltos de pagina y demás sin ningun problema.

Sin embargo si instalo la generica Solo/texto y la configuro igual en maquinas w2000/XP, es decir genero la impresion en estos S.O., imprime todo en la misma linea, sin salto de linea.

He cambiado el tipo de cola, he reconfigurado todo.....LLevo varias semanas luchando con esto....

No se....

Por cierto uso el objeto Tprinter en las rutinas y D5

Alguien me ilumina?
Gracias de antemano.

raul_sal
10-12-2003, 20:26:14
Proba imprimiendo directamente al puerto a mi me ha funcionado muy bien



var F : TextFile;

begin
AssignFile(F,'LPT1')
Reset(F)

Writeln(F,'Texto a imprimir')

CloseFile(F);


mas o menos para que te des una idea.

__cadetill
11-12-2003, 10:08:10
Otra manera que funciona bien con 2k (sacado de mi web de la demo del TListView y probado ;))


procedure TForm1.ImprimirCanvasClick(Sender: TObject);
var y, i, j : integer;
temp : string;
begin
Printer.BeginDoc;
With Printer.canvas do
Begin
Printer.Title := 'El titulo del documento que quiero';
Font.Name := 'MS Sans Serif';
Font.Color := ClBlack;
Pen.Color := ClBlack;
Font.Size := 12;
Font.Name := 'Times New Roman';
Font.Size := 12;

// imprimimos ListView
temp := 'Titulo que sale escrito en el papel';
y := 100;
TextOut(10, y, temp);
for i := 0 to ListView1.Items.Count - 1 do
begin
inc(y, 20);
temp := ListView1.Items[i].Caption;
for j := 0 to ListView1.Items[i].SubItems.Count - 1 do
temp := temp + ' ' + ListView1.Items[i].SubItems[j];
TextOut(10, y, temp);
end;
end;
Printer.EndDoc;
end;

josemmerida
13-12-2003, 21:01:59
Gracias a todos.

He estado trabajando en las rutinas alternativas, usando TextFile, y ya las tengo casi listas. Funcionan perfectamente.

De todas maneras me sigo preguntando por qué un simple:

Printer.Canvas.TextOut(0,1,'Hola Mundo');
Printer.Canvas.TextOut(0,2,'Adios Mundo');

En las mismas condiciones, en W95/W98 se imprime bien, y en W2000/Wxp se imprime en la misma linea. ?????????????????

Lo almacenaré en la zona de Expedientes X.
La verdad está ahí fuera.
;)
Saludos.

merlin
17-12-2003, 12:53:54
Hola mira no se si esto te resolverá el problema pero hay va, a mi me funciona.


Vamos a ver W2K y XP son SO en los que hay usuarios hasta hay todo correcto la historia esta en que cada usuario tiene unos temporales diferentes lo que tienes que hacer, es unificar los temporales de cada máquina y eso se hace creando una nueva carpeta que se llame Temp en C:\ luego vas al escritorio boton derecho del raton propiedades de miPC entras en la pestaña opciones avanzadas en xp o en su defecto avanzado en w2k y veras que aparece un botón que es variables de entorno, bueno pues hay le cambias las rutas a las dos carpetas, por la de C:\Temp y listo.