Текстовая печать на АЦПУ

отредактировано 13:32 Раздел: FastReport 3.0
Приветствую!

Возникла у меня необходимость печатать "крупные" отчеты на стареньком АЦПУ Olivetti PR 4600. Казалось бы, текстовые отчеты (DMP) FR3 поддерживает, так что проблем быть не должно... Но не тут то было. Итак по порядку.
- 1. Для этой "печатной машинки" драйвера не существуют, так что в списке принтеров Windows его нет. Соответственно выбрать это устройство в диалоге печати несколько проблематично. ;)
Однако это не критично, поскольку можно поставить драйвер Generic(Text only) и наслаждаться. ;)
- 2. Вторая "трудность" более неприятна. Дело в том, что данный агрегат печатает исключительно на рулоне и никогда на листах. Понятное дело, что в FR3, как и в других Win-приложениях, такого "формата бумаги" нет... ;) А очень хотелось бы! ;)
Дело в том, что при любом другом формате бумаги в конце "страницы" выполняется прогон листа, который на рулонной бумаге мягко говоря не нужен.
Опять же. Можно выставить "пользовательский" формат бумаги и указать в поле "число строк" значение "дофига", но как то "не так я развитой социализм представлял"... ;) К тому же в этом случае и в дизайнере страница получается э-э-э... большой, что неудобно. А еще заданная высота страницы учитывается при выводе Preview (зачем рисовать "пустую" часть виртуального рулона)...
- 3. Самое неприятное. Как известно большинство принтеров делаются буржуями и, соответственно, с кириллицей у них не всегда лады. Так вот упомянутое АЦПУ не поддерживает загрузку шрифтов, но имеет встроенную подержку кириллицы... в кодировке КОИ-8. ;) Причем поменять это нельзя (к моему величайшему сожалению). ;)
Сейчас FR3 (по крайней мере в "матричных" отчетах) может работать только с двумя кодировками: ANSI и OEM. И "привязать" что-то еще сюда можно только путем правки исходников... Но это тревато "ежеверсионным" анализом исходников с последующим внесением необходимых корректив. ;)


Итак. Чего бы хотелось (по пунктам).
1. Добавить в диалог печати "матричного" отчета виртуальный принтер с возможностью выбора порта (LPT?/COM?), т.е. печать напрямую в порт принтера минуя объекты папки "Принтеры".
2. Опять же для DMP отчетов добавить специальный размер бумаги "рулон", выбор которого в дизайнере включает опцию "Большая высота в дизайнере".
3. Дополнить формат файла поддержки принтеров printers.xml, добавив в него секцию таблиц перекодировки (строка символов замены для символов с кодом >127), а в диалоге вывода на печать заменить галочку "OEM-кодировка" Combobox-ом со списком доступных кодировок. Это бы позволило решить проблему в корне.

Очень бы хотелось услышать одобрение изложенных идей со стороны авторов! ;)

Комментарии

  • отредактировано 13:32
    1) Увы.
    2) В FR все завязано на размер листа, так что тоже увы. Решение проблемы: не использовать поля, бэнды типа page header/footer, и отключить page breaks в диалоге печати.
    3) В выходящей 3.16 предусмотрено событие TfrxDMPExport.OnTranslate.
  • отредактировано 13:32
    Александр, спасибо за оперативный ответ.
    Буду ждать 3.16.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.