LINUX.ORG.RU

Преобразование postscript bad cyrilic -> postscript correct cyrilic.


0

0

Есть несколько программ, которые генерирует неправильный postscript, для просмотра
которого ghostscript-ом надо использовать "отхаканные" кириллические шрифты
( см. http://www.inp.nsk.su/~baldin/Cyrillic-HOWTO-russian/ch14.html#CyrFontsType1),
в которых вместо западноевропейских символов расположены кириллические. Вот пример
такого неправильного постскрипт файла:

/TimesNRCyrMT findfont
20 scalefont
setfont
70 700 moveto
(Постскрипт) show
70 670 moveto
(\360\317\323\324\323\313\322\311\320\324) show
showpage

Т. е. при просмотре данного файла выводится два раза надпись "Постскрипт". Первая
надпись - надпись в koi8-r кодировке, вторая надпись - восьмеричные коды.

И собственно вопрос. Можно ли перекодировать этот постскрипт в нормальный и использовать
нормальные ("правильные") шрифты (sharetype, urw-cyrilic или ms truetype)?

anonymous

> Есть несколько программ, которые генерирует неправильный postscript, для просмотра которого ghostscript-ом надо использовать "отхаканные" кириллические шрифты ( см. http://www.inp.nsk.su/~baldin/Cyrillic-HOWTO-russian/ch14.html#CyrFontsType1), в которых вместо западноевропейских символов расположены кириллические.

Ну, если ты докопался до принципа, то тебе не составит труда использовать, скажем, perl, для замены одного другим... :)

anonymous
()
Ответ на: комментарий от anonymous

Докопаться то докопался но я ж не знаю какая кодировка используется в "правильных" шрифтах и как надо преобразовывать. Т. е. мне надо знать как преобразовать слово "Постскрипт" из koi8-r кодировки в правильную кодировку. И что такое правильная кодировка в постскрипте (utf-8, utf-16 или что ещё)?

anonymous
()
Ответ на: комментарий от anonymous

> И что такое правильная кодировка в постскрипте Правильная кодировка в постскрипте - это адобовская. Кирилические буквы через show вообще нельзя показать без похаканых шрифтов.

Чтобы вывести все символы из шрифта необходимо использовать glyphshow.

То есть, для вывода текста "Постскрипт" нужно писать что-то вроде:

\cyrillicPe glyphshow \cyrillico glyphshow \cyrillices glyphshow ... и так далее. Где \cyrillicPe - названия символов по стандарту адобе. (про точность приведенных названий не ручаюсь, ибо не помню.). Таблица имен есть где-то на сайте адоба, но как ни странно, она не полная. То есть я встречал в шрифтах символы, которых не было в адобовском списке. (Названия символов видны в *.pfb файлах, они ведь текстовые)

Чтобы скорректировать неправильный постскрипт нужно заменять все комбинации (текст) show на последовательность glyphshow. Это может не сработать, так как команда show может не обязательно следовать за строковой константой.

Более реалистичный вариант втыкать в постскрипт свою функцию show, под названием, например, show_koi8r, которая посимвольно перекодирует из нужной кодировки в адобовскую с glyphshow для каждого символа. А по тексту заменить show на show_koi8r. И то не факт, что поможет, так как скрипт сам может выводить через glyphshow, но неправильно перекодируя.

Короче, скорее всего лучше оставить как есть, с похакаными шрифтами.

smartly ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.