From: "Victor B. Wagner" <vitus@agropc.msk.su>
Subject: Печать на LaserJet с синтаксическими выделениями и русские буквы
Date: 18 Oct 1996 20:42:14 +0400
Может быть, кому-то приходилось сталкиваться с такой проблемой:
при печати на 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).
---------------------------------------------------------------------------
Phone: 7(095)230-80-61 Victor B. Wagner
Fax: 7(095)230-80-42 Dokuchaev Soil Institute
EMail: vitus@agropc.msk.su Pyzhevsky lane, 7
Moscow,109017 Russia
|