Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как печатать текстовые отчеты напрямую на матричный принтер из FastReport в формате dot-matrix

Delphi , ОС и Железо , Принтеры и Печать

Печать текстовых отчетов на матричный принтер из FastReport

Проблема печати в формате dot-matrix

При попытке печати отчетов из FastReport на матричный принтер многие разработчики сталкиваются с проблемой: вместо ожидаемого текстового вывода получается поток управляющих последовательностей и двоичных данных. Это происходит потому, что современные драйверы принтеров по умолчанию используют графический режим печати, даже для матричных принтеров.

Как показано в примере из вопроса, вывод содержит множество ESC-последовательностей (начинающихся с 1B), которые представляют собой команды управления принтером, но сам текст оказывается нечитаемым.

Решение: использование TfrxDotMatrixExport

FastReport предоставляет специальный компонент TfrxDotMatrixExport, предназначенный именно для работы с матричными принтерами. Вот как его можно использовать:

procedure PrintDotMatrixReport(Report: TfrxReport);
var
  DotMatrixExport: TfrxDotMatrixExport;
begin
  DotMatrixExport := TfrxDotMatrixExport.Create(nil);
  try
    DotMatrixExport.ShowDialog := False;
    DotMatrixExport.ShowProgress := False;
    DotMatrixExport.PageBreaks := True;
    DotMatrixExport.Export(Report);
  finally
    DotMatrixExport.Free;
  end;
end;

Этот экспортер генерирует чистый текст с минимальным количеством управляющих последовательностей, что идеально подходит для матричных принтеров.

Альтернативное решение: прямой вывод на принтер

Если вы хотите избежать создания промежуточного файла, можно использовать прямой вывод на принтер через API Windows:

procedure DirectPrintToDotMatrix(Report: TfrxReport; PrinterName: string);
var
  Printer: TPrinter;
  OldPrinterIndex: Integer;
begin
  Printer := TPrinter.Create;
  try
    OldPrinterIndex := Printer.PrinterIndex;
    try
      Printer.PrinterIndex := Printer.Printers.IndexOf(PrinterName);
      Report.PrintOptions.Printer := Printer.Printers[Printer.PrinterIndex];
      Report.Print;
    finally
      Printer.PrinterIndex := OldPrinterIndex;
    end;
  finally
    Printer.Free;
  end;
end;

Настройка драйвера принтера

Для правильной работы важно правильно настроить драйвер принтера:

  1. В свойствах принтера выберите "Текстовый режим" или "Режим dot-matrix"
  2. Установите правильную кодировку (обычно CP866 для русского языка)
  3. Настройте параметры страницы согласно возможностям вашего принтера

Работа с управляющими последовательностями

Если вам нужно добавить специальные команды для принтера, можно использовать событие OnManualBuild в FastReport:

procedure TForm1.ReportManualBuild(Sender: TfrxReport; Page: TfrxReportPage);
begin
  // ESC-последовательность для инициализации принтера
  Page.Canvas.TextOut(0, 0, #27'@');
  // Установка режима печати
  Page.Canvas.TextOut(0, 0, #27'x1');
  // Ваш текст
  Page.Canvas.TextOut(0, 10, 'Пример текста для матричного принтера');
end;

Заключение

Печать на матричные принтеры из FastReport требует особого подхода. Лучшим решением является использование TfrxDotMatrixExport, но при необходимости можно реализовать и прямой вывод на принтер. Правильная настройка драйвера и понимание управляющих последовательностей помогут добиться оптимального результата.

Для более сложных сценариев рекомендуется изучить документацию по ESC/P (Epson Standard Code for Printers) и адаптировать ее под конкретную модель вашего матричного принтера.

Создано по материалам из источника по ссылке.

Решение проблем печати текстовых отчетов на матричный принтер из FastReport с использованием специального экспортера и настройки драйверов.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Принтеры и Печать ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-07-08 05:55:18/0.0062410831451416/0