Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Solo texto + w2000 no imprime bien.¿Porque? (https://www.clubdelphi.com/foros/showthread.php?t=5912)

josemmerida 10-12-2003 19:35:04

Solo texto + w2000 no imprime bien.¿Porque?
 
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

Código:


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 ;))

Código:

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.


La franja horaria es GMT +2. Ahora son las 21:21:21.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi