Newtron pero entonces como mando la secuencia de corte
??
He probado estos ejemplos de codigo y no me sale
.. Tengo en el Form 1 listview y 1 memo
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
var F : TextFile;
i, j : integer;
temp : string;
begin
AssignPrn(F); Rewrite(F);
temp := 'Columna1 Columna2 Columna3 Columna4 Columna5';
Writeln(F, temp);
Writeln(F,'Hola linea 1');
Writeln(F,#13+#10);
Writeln(F,'Hola despues del enter linea 2');
Writeln(F,#13+#10);
Writeln(F,#13+#10);
Writeln(F,#13+#10);
Writeln(F,#13+#10); Writeln(F,#27+#109); CloseFile(F);
end;
procedure TForm1.Button2Click(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;
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;
inc(y, 20);
TextOut(10, y, #27+#109);
end;
Printer.EndDoc;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
r: TRect;
i: Integer;
begin
with Printer do
begin
r := Rect(200,200,(Pagewidth - 200),(PageHeight - 200));
BeginDoc;
Canvas.Brush.Style := bsClear;
for i := 0 to Memo1.Lines.Count do
begin
Canvas.TextOut(200,200 + (i *
Canvas.TextHeight(Memo1.Lines.Strings[i])),
Memo1.Lines.Strings[i]);
end;
Canvas.TextOut(200,200 + (9 *
Canvas.TextHeight(Memo1.Lines.Strings[9])),
#27+#109);
Canvas.Brush.Color := clBlack;
Canvas.FrameRect(r);
EndDoc;
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
var
Handle: THandle;
N: DWORD;
DocInfo1: TDocInfo1;
s : string;
begin
if not OpenPrinter(PChar('\\ethan-PC\caja'), Handle, nil) then begin
ShowMessage('Printer «\\ethan-PC\caja» not found.');
Exit;
end;
with DocInfo1 do begin
pDocName := PChar('Document Name');
pOutputFile := nil;
pDataType := 'RAW';
end;
StartDocPrinter(Handle, 1, @DocInfo1);
s := 'First line of first page' + #13+#10;
WritePrinter(Handle, PChar(s), Length(s), N);
s := 'Second line of first page' + #13+#10;
WritePrinter(Handle, PChar(s), Length(s), N);
s := #27+#109;
WritePrinter(Handle, PChar(s), Length(s), N);
EndPagePrinter(Handle);
EndPagePrinter(Handle);
EndDocPrinter(Handle);
ClosePrinter(Handle);
end;
procedure TForm1.Button5Click(Sender: TObject);
var
PrinterHandle: THandle;
DocInfo: TDocInfo1;
i: Integer;
B: Byte;
Escritos: DWORD;
Str : String;
begin
Str:='linea 1 ,,, '+#13+#10+'linea 2...'+#27+#109;
if OpenPrinter(PChar('\\ethan-PC\caja'), PrinterHandle, nil) then
try
FillChar(DocInfo,Sizeof(DocInfo),#0);
with DocInfo do
begin
pDocName:= PChar('Printer Test');
pOutputFile:= nil;
pDataType:= 'RAW';
end;
if StartDocPrinter(PrinterHandle, 1, @DocInfo) <> 0 then
try
if StartPagePrinter(PrinterHandle) then
try
while Length(Str) > 0 do
begin
if Copy(Str, 1, 1) = '\' then
begin
if Uppercase(Copy(Str, 2, 1)) = 'X' then
Str[2]:= '$';
if not TryStrToInt(Copy(Str, 2, 3),i) then
Exit;
B:= Byte(i);
Delete(Str, 1, 3);
end else B:= Byte(Str[1]);
Delete(Str,1,1);
WritePrinter(PrinterHandle, @B, 1, Escritos);
end;
finally
EndPagePrinter(PrinterHandle);
end;
finally
EndDocPrinter(PrinterHandle);
end;
finally
ClosePrinter(PrinterHandle);
end;
end;
jeje son mis ejemplos para imprimir
.. Saludos
Newtron hay forma de saber por medio del nombre de la impresora local en que puerto esta conectada ???