Скачать Особенности печати на LaserJet из среды BP

18.10.1996
Скачать файл (1,26 Кб)

Может быть, кому-то приходилось сталкиваться с такой проблемой: при печати на HP LaserJet из среды Borland Pascal пропадают русские буквы в комментариях и текстовых константах и/или в конце работы принтер выкидывает пустую страницу.

Мы у себя эту проблему решили следующим образом:

В исходном тексте PRNFLTR, который входит в дистрибутив BP 7.0 мы обнаружили
1) Команды смены шрифта, завязанные на Symbol Set.
2) В качестве строки деинициализации принтера на него передается chr(12) (FormFeed), который выкидывает страницу безотносительно к наличию данных в буфере.

Это лечится следующим образом:

Строки с 125 по 133 заменяются на:

  { HP LaserJet code definition }

  HPInit      = #27'E'#27'(3R'#27'(s0p10.00h12.0v0s0b3T';
  HPItalic    = #27'(3R'#27'(s0p10.00h12.0v1s0b3T';
  HPNoItalic  = #27'(3R'#27'(s0p10.00h12.0v0s0b3T';
  HPBold      = #27'(3R'#27'(s0p10.00h12.0v0s3b3T';
  HPNoBold    = #27'(3R'#27'(s0p10.00h12.0v0s0b3T';
  HPULine     = #27'&dD';
  HPNoULine   = #27'&d@';

Эти команды тоже завязаны на набор символов, но используют русские шрифты из SIMM для HP LaserJet4p (если кто знает набор команд не меняющий текущего шрифта, и работающий независимо от русификации - поправьте меня)

строка 162 (определение Postamble в константе LaserJetCodes)
заменяется на:
    Postamble: #27'%-12345X'#27'E'#27'%-12345'

Вот в этой конструкции я уверен абсолютно (кстати, в Preamble, точнее HPInit борландовцы поставили ту же самую ESC E).