Un ejemplo de impresión con ficheros de texto
Código:
procedure TForm1.ImprimirClick(Sender: TObject);
var F : TextFile;
i, j : integer;
temp : string;
begin
AssignFile(F, 'c:\lolo.txt');
Rewrite(F);
// Ponemos título de las columnas
temp := 'Columna1 Columna2 Columna3 Columna4 Columna5';
Writeln(F, temp);
for i := 0 to ListView1.Items.Count - 1 do
begin
temp := ListView1.Items[i].Caption;
for j := 0 to ListView1.Items[i].SubItems.Count - 1 do
temp := temp + ' ' + ListView1.Items[i].SubItems[j];
Writeln(F, temp);
end;
CloseFile(F);
end;
(esto imprime el contenido de un TListView)
Otro ejemplo con Canvas
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;
Para abrir el cajón portamonedas, sólo has de enviarle los siguientes códigos
Código:
procedure AbrirCajon;
var f : TextFile;
begin
AssignFile(f,'lpt1');
try
Rewrite(f);
Writeln(f,#27+'p0'+#100+#0);
finally
CloseFile(f);
end;
end;
Para el tema de la guillotina..... ni idea