Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   impresion directa a impresora (https://www.clubdelphi.com/foros/showthread.php?t=17528)

e_god 12-01-2005 14:51:26

impresion directa a impresora
 
Buen dia, ¿alguien me puede ayudar, necesito enviar un texto directo a la impresora, sin generar el reporte por report builder?

Para imprimir formatos de correo en una impresora de agujas.


edgar :confused:

Coco 12-01-2005 15:00:50

a ver si te sirve algo asi?

Código:

procedure TForm1.Button1Click(Sender: TObject);
 var
    t:TextFile;
      i: integer;
 begin
 AssignPrn(t);
 rewrite(t);
 try
    Printer.Canvas.Font:= Memo1.Font;
    for i:= 0 to Memo1.Lines.Count-1 do
      writeln(t,memo1.lines[i]);
 finally
    CloseFile(t);
 end;
 end;


Saludos

lento manu 12-01-2005 20:14:43

imprimir matricial
 
Yo utilizo un ejemplo de Marco Cantu para generar listado HTML, solo q escribo texto ascii tal como lo interpreta la impresora tipo "Propinter". Se basa en una Unit derivada de TStingList, tal q así:
Código Delphi [-]
unit StrPrn;
interface
uses
Classes, DB, Dialogs, Variants;
const
//IBMpropinter
//estos caracteres deben verse con el editor Charset OEM-charset
Defecto = '';
Comprimir = '';
Super = '';
IniResaltar ='E';
FinResaltar = 'F';
RayaH = 'Ä';
RayaV = '³';
Cruce = 'Å';
CruceIda='´';
CruceDcha='Ã';
AnglIzdaSup= 'Ú';
AnglIzdaInf= 'À';
AnglDchaSup= '¿';
AnglDchaInf= 'Ù';
RDblH ='º';
RDblV = 'Í';
CruceDbl='Î';
SaltoPagina = ' ';
Aowner = 'PROPIETARIO, S.L. C.I.F.: ES-B-79774645';
noOwner= ' ';
//pagina
LineasPagina = 62;
LastDetalle = 54; //53
type
TStrPrn = class (TStringList)
public
//todas las q necesites:
Asrc, Apath, TipoListado: string;
Linea, pagina, NoDoc, Unidades: integer;
Final, FinDetalle: boolean;
importe: Currency;
 
//Generar los procedimientos q vayas a usar:
procedure Cabecera (nArray:integer; Sigla, Marca, Temporada: string; Sujeto, Data: TDataSet);
procedure DetailCabecera(Repre, Marca:string;DatSujeto: TDataset);
procedure Pics(nArray: integer; Data: TDataSet);
procedure Cerrar(const Nominal:string);
procedure Detalles (Data: TDataSet);
Procedure SubDetail(SubData: TDataset);
Procedure NewPage ;
Procedure SetPagina;
procedure Rellenar (lineas:integer);
private
aSigla: String[1];
Tabla: TDataSet;
procedure AddTableContents (Data: TDataSet);
end;
implementation
uses
SysUtils;....
Es muy útil, y el texto lo muestro antes en formato Oem. Pero ántes te lo has de currar bien el formato y todo eso. Para nviar a PRN (también guardar TXT) así:

Memo1.Lines.SaveToFile('lpt1:');

pero si no hay impresora LPT1 se produce un error aunque lo intentes capturar con un try ... except.
De este modo imprimes al modo dos con las letras por defecto de la PRN, es más rápido y los calcos son los de siempre.

Aquí en el foro, he visto otros métodos muy interesantes, por ejemplo en el componente Norma19. Este es método es ya un componente y genera un listado ascii igualmente. Al ser un componente, me parece más interesante, pero bastante más complejo de entender.

Si necesitas mas detalles, te puedo enviar al mail un pas completo.


La franja horaria es GMT +2. Ahora son las 01:27:48.

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