Ver Mensaje Individual
  #3  
Antiguo 12-01-2005
lento manu lento manu is offline
Miembro
 
Registrado: oct 2004
Posts: 29
Reputación: 0
lento manu Va por buen camino
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.

Última edición por lento manu fecha: 13-01-2005 a las 00:23:03. Razón: Reformar étiquetas Código
Responder Con Cita