Работа с 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); но я не получаю правильный формат. Может ли кто-нибудь помочь мне в решении этой проблемы?

0 ответов

Другие вопросы по тегам