Работа с USB-принтером в Delphi
У меня есть приложение, которое печатает документы на принтер Dot Matrix, используя порт LPT1. Теперь мы планируем изменить этот код для работы со всеми USB-принтерами, а также он сможет печатать в PDF-документе. Код, который мы используем, выглядит следующим образом:
procedure TFrmPrintDialog.SpdBtnPrintClick(Sender: TObject);
var
i, n: integer;
F: TextFile;
CH, CH1, CH2, str0, str1: string;
begin
ListPrinterInfo;
ShowPrinterInfo;
AssignFile(F, namaprinter); //'pdfcmon'
//AssignPrn(F);
Rewrite(F);
n := FrmPreview.RichEdit1.Lines.Count;
for i := 0 to n - 1 do
begin
str1 := FrmPreview.RichEdit2.Lines.Strings[i];
if i = 0 then
CH := chr(15) + chr(27) + 'M'
else
CH := '';
str0 := CH + FrmPreview.RichEdit1.Lines.Strings[i];
if str1 = '*FF' then
writeln(F, chr(12)); // ganti halaman
// bold kode huruf ke 3
if copy(str1, 3, 1) = 'B' then
begin
CH1 := chr(27) + chr(71);
CH2 := chr(27) + chr(72);
end
else
begin
CH1 := '';
CH2 := '';
end;
str0 := CH1 + str0 + CH2;
// Underline kode huruf ke 4
if copy(str1, 4, 1) = 'U' then
begin
CH1 := chr(27) + chr(45) + '1';
CH2 := chr(27) + chr(45) + '0';
end
else
begin
CH1 := '';
CH2 := '';
end;
str0 := CH1 + str0 + CH2;
// Italic kode huruf ke 5
if copy(str1, 5, 1) = 'I' then
begin
CH1 := chr(27) + chr(52) + '4';
CH2 := chr(27) + chr(53) + '5';
end
else
begin
CH1 := '';
CH2 := '';
end;
str0 := CH1 + str0 + CH2;
// Besar kode huruf ke 6
if copy(str1, 6, 1) = 'G' then
begin
CH1 := chr(27) + chr(87) + '1';
CH2 := chr(27) + chr(87) + '0';
end
else
begin
CH1 := '';
CH2 := '';
end;
str0 := CH1 + str0 + CH2;
writeln(F, str0);
end;
writeln(F, chr(27) + '@');
CloseFile(F);
FrmPrintDialog.Close;
end;
Я пытался заменить AssignFile(F,namaprinter);
в AssignPrn(F);
но я не получаю правильный формат. Может ли кто-нибудь помочь мне в решении этой проблемы?