To: Vendetta
Шрифт в postscript файле с буквой "ф" - Antiqua. Файл выглядит точно также, как и в случае с Arial и "Й", DejaVu Sans и "б". Т.е проблема та же, рецепт из поста 57 должен помочь.
Пользователь решил продолжить мысль 27 Ноября 2009, 03:20:41:
To Saha:
1. Не так важно то, какой cups установлен, как то как сконфигурирован его конвеер, т.е. какими именно утилитами и с какими параметрами он переливает из ps в pdf и обратно. У меня jaunty, я пробовал разные версии cups, но в конце концов, тщательно вычистив установленные из исходников с cups.org, вернул родную версию 1.3.9-17ubuntu3.4.
2.
попробовал сконвертить свой ps-файл, полученный из ОО, с помощью команды:...
Теряется буква позже, просто Okular не отображает символы notdef в pdf файлах. Если пропустить часть преобразований (которые вроде не влияют на сабж), то цепочка преобразований при печати такова:
- ООо формирует постскрипт (пусть это будет ShortI.ps) и отправляет его в капс
(буква Й, разумеется, в файле еще есть)
- Капс преобразует постскрипт в пдф, фактически: ps2pdf13 ShortI.ps ShortI-ps2pdf13.pdf. ps2pdf13 - фронтэнд ghostscript
(буква Й, в файле ShortI-ps2pdf13.pdf все еще есть, хотя Okular ее и не кажет (что и ввело меня изначально в заблуждение относительно того, что она теряется здесь), но Evince и гимнаст-акробат отображают ее, как будто все в порядке)
- Здесь капс куражится, преобразуя пдф в пдф (/usr/lib/cups/filter/pdftopdf), применяя, вероятно, параметры печати типа портрет, ландшафт. /usr/lib/cups/filter/pdftopdf job-id user title copies options ShortI-ps2pdf13.pdf > ShortI-pdftopdf.pdf
(На сабж не влияет, потребительские свойста "Й" в получающемся пдф файле прежние.)
- Место момента истины. Преобразование обратно в постскрипт. Установщик дебиана настраивает капс для выполнения этого преобразования с помощью /usr/lib/cups/filter/cpdftocps, что есть скрипт использующий /usr/lib/cups/filter/pdftops, что есть обёртка, использующая (в Ubuntu) /usr/bin/pdftops. /usr/bin/pdftops - фронтэнд poppler. /usr/bin/pdftops ShortI-pdftopdf.pdf ShortI-pdftops.ps.
(здесь букву Й обнаружить уже не удается)
Если последнее преобразование сделать не poppler-утилитой, а ghostscript, указав RENDERTTNOTDEF, Й сохранится. gs -dNOPAUSE -dBATCH -dSAFER -dRENDERTTNOTDEF -sDEVICE=pswrite -sOUTPUTFILE=ShortI-gsps.ps ShortI-pdftopdf.pdf.
(В результирующем файле, ShortI-gsps.ps, потребительские свойства Й достаточны, чтобы увидеть ее даже в Okular ;.)
Как альтернативное решение проблемы, можно или заменить /usr/lib/cups/filter/cpdftocps, чтобы он использовал gs, вместо обёртки или перекомпилировать саму обёртку, чтобы она использовала gs. Веточки условной компиляции для этого там есть, но предпочтение отдается poppler. Да, и флажок RENDERTTNOTDEF к параметрам gs нужно добавить.