Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Не печатает буквы из OpenOffice [Проблема решена в OOO3.2]  (Прочитано 29535 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Saha

  • Автор темы
  • Активист
  • *
  • Сообщений: 517
    • Просмотр профиля
Спасибо kmax, что наконец-то сдвинул дело с мёртвой точки =)
Отметился на лаунчпаде и написал про версии CUPS.

Оффлайн xenar

  • Участник
  • *
  • Сообщений: 110
  • OC: Ubuntu 12.04
    • Просмотр профиля
Тоже отметился, Весьма неприятный баг.

Оффлайн orbisnull

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
    • tao&linux
А кто-нибудь пробовал в rc 9.10 ?

Оффлайн Saha

  • Автор темы
  • Активист
  • *
  • Сообщений: 517
    • Просмотр профиля
я пробовал в бете, та же фигня, вряд ли это исправили в rc =(

Оффлайн xenar

  • Участник
  • *
  • Сообщений: 110
  • OC: Ubuntu 12.04
    • Просмотр профиля
А на Kubuntu 9.10 проблемы то нет .... :-\
cups 1.4.1.5

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Saha, пожалуйста, добавь в хэдпост:
Создал баг по теме.
Пожалуста, добавьте ваши комментарии, если что-то забыл упомянуть.
https://bugs.launchpad.net/ubuntu/+source/cups/+bug/449255

PS Точно не знаю, но если все заинтересованые, подпишуться под багом, что их он тоже "достал", то на него быстрее обратят внимание...

Оффлайн Saha

  • Автор темы
  • Активист
  • *
  • Сообщений: 517
    • Просмотр профиля

Оффлайн Щурин Юрий Евгеньевич

  • Участник
  • *
  • Сообщений: 212
  • "Войны ещё никого не сделали великим .." - м. Йода
    • Просмотр профиля
Проблемы с Й тоже имею на Ubuntu 9.04 и принтере от Canon (MF4010)

Но тут нарисовалась еще одна ... пришел документ где используется шрифт Arial Cyr (документ xls), так вот на печать вышел документ без букв "б" - не работа, а раота ...
Вручную сменил шрифт на Arial напечатал все правильно ... на экране как и в случае с "Й" все хорошо а на бумаге косячок .... тему увидел только пару минут назад ... поэтому CUPS еще 1.3.9 (родной).

Кстати с Й мне удавалось раньше бороться, как ни странно, уменьшением размера шрифта заголовка. Исходный был 18 пунктов,а при уменьшении до 14 - Й появлялась в распечатке.
Но так как нарвался на "б" пошел искать решение и оказался тут.
Вопрос:
Как можно в будущем научить OO или систему заменять стандартными шрифтами неизвестные шрифты в документах (автоматически при открытии документа)?

Оффлайн Ivanov1965

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Этот же баг присутствует Ubuntu 9.10, cups-1.4.1-2. Попробовал скомпилировать cups-1.4.2 с сайта www.cups.org. Проблема осталась. Удалось избавиться от него только после компиляции и установки версии cups-1.3.11. Так что баг именно уних. Может быть баг-репорт (письмо разработчикам с сылкой на баг-репорт) нужно написать и им? Думаю, что если будет несколько писем - это только подтолкнет разработчиков на устранение проблемы.

Пользователь решил продолжить мысль 11 Ноября 2009, 20:27:47:
Подтвердил баг-репорт в launchpad.net, написал баг-репорт с сылкой на предыдущий в www.cups.org
http://www.cups.org/str.php?L3416
« Последнее редактирование: 11 Ноября 2009, 20:27:47 от Ivanov1965 »

Оффлайн Saha

  • Автор темы
  • Активист
  • *
  • Сообщений: 517
    • Просмотр профиля
Мои небольшие исследования по данному вопросу подтвердили тезис о том, что всё-таки баг связан с ОпенОфисом, но есть одно НО=)
Делал так: из-под Убунты 9.10 64бит установил ms corefonts.
Установил AbiWord и KWord.
Везде сделал документ, содержащий Й с Times New Roman.
Сделал "Печать в PostScript". Получил три ps-файла, которые, как ни странно, отличаются друг от друга  ;)
Так вот, в Document Viewer во всех трех файлах Й отображается, но из файла, слделанного ОО, не печатается.
Отсюда я делаю такой вывод (с учетем всех предыдущих мыслей в этом топике):
похоже, что ОО создает какой-то "нестандартный" ps-файл, который нормально печатается в старых версиях CUPS, но в новых не печатается. То есть, это неизвестно чей баг - ОО или CUPS.
Данная ситуация, наверное, самая поганная, которая может быть.. =(
Ибо не ясно, кого теребить и куда писать баг-репорты
Поэтому, мне кажется, надо обратиться за помощью к русской команде Ubuntu по данному вопросу, возможно, найдутся люди, которые разбираются в формате ps и в том, как работает cups. Или самим копаться =)

Прикладываю тут три сделанных мною ps-файла.

Оффлайн Fimir

  • Участник
  • *
  • Сообщений: 244
    • Просмотр профиля
Проблему частично обошёл заменой Times New Roman на Nimbus Roman No9 L, который чуть ли не точная копия... забавно. Единственное различие -- нимбус на какой-то микрон больше по размеру.

Оффлайн aleXPS

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: [Bug 449255] Re: cups with ttf-mscorefonts does not print capital Й
To: Saha

Я тоже не вполне понимаю в чем именно корень проблемы. Это может быть и некоторая некорректность в структуре самого шрифта или такая его особенность, которая не вполне корректно обрабатывается postscript генератором OOo. Или такая особенность генерируемого postscript файла, которую цепочка фильтров cups обрабатывает не вполне корректно.

Насколько я понял, начиная с одной из под-версий cups 1.3.*, в организацию конвейера обработки документа для печати вносятся изменения, чтобы сделать его не postscript-ориентированным, каким он был ранее, а pdf-ориентированным. Раньше, если грубо, цепочка обработки была такова: OOo генерирует свой postscript файл (со встроенными шрифтами), cups пропускает его через комплект postscript фильтров, который, в общем, зависит от входного файла и цели преобразования (принтера, например), преобразованный cups  postscript отправляется на принтер. Теперь в ходе преобразований cups есть этап конвертации в pdf, зетем обработки в pdf-е, затем обратно в postscript, подготовка его для принтера, отправка на принтер. Если в cups включить отладочные сообщения, то по протоколу можно как-то восстановить эту цепочку. Можно часть преобразований цепочки повторить вручную, анализируя, на сколько это возможно, текущий результат. У меня вышло, что проблема проявляется после преобразования входного OOo postscript в pdf: Если сохранить  OOo postscript в файл (опция «печать в файл»), затем прогнать его через ps2pdf конвертер, то в результирующем файле проблема уже будет иметь место.

Пробовал устанавливать разные версии cups, от Carmic (тут Jaunty), собранные из исходников разных версий с сайта cups, ни в одном из вариантов все проявления проблемы не уходили. А именно, «Й» в Arial, Courier New, Times New Roman, установленных пакетом mscorefonts и «б» из казалось бы родного в линуксе DejaVu Sans. Случаи с другими шрифтами, которые я разбирал, были вызваны подстановкой одного из перечисленных. Например «б» испорченная в Arial, оказалась таковой потому, что Arial нет и был подставлен  DejaVu Sans.

Ковырялся в Arial в шрифтовом редакторе (FontForge, древняя и огромная в смысле функций софтина), на сколько я могу судить, «Й» в Arial как-бы составлена из двух глифов: «И» и этого самого смайла сверху. Может это и есть причина? Но тогда не понятно что с «б», там смайлов нет. Если Arial просто сохранить в FontForge, то получившийся шрифт печатается нормально. Но все же шрифты не переправишь, да и гарантии нет, что просто сохранение везде поможет.

То решение, которое работает сейчас у нас, по сути, изменяет (дополняет) цепочку фильтров cups, приближая ее, как я подозреваю, к тому, что было в более ранних версиях. Благо, там все настраивается:
В /etc/cups/oopstops.types добавлена строка:

application/oo3.postscript string(0,%!) + contains(0,1024,"%%Creator: (OpenOffice.org 3.")

теперь postscript, приходящий из OOo 3.*, будет не просто postscript, а «oo3.postscript»

В /etc/cups/oopstops.convs добавлена строка:

application/oo3.postscript application/postscript 33 oo3-pstops

которая сообщает cups, что для преобразования «oo3.postscript» в обыкновенный нужно использовать фильтр oo3-pstops.

И, наконец, в /usr/lib/cups/filter, где cups ищет свои фильтры, добавлен скрипт oo3-pstops, который по сути прогоняет OOo postscript файл через утилиту ps2ps — «Ghostscript PostScript "distiller"», как сказано в man, т.е. конвртер из postscript в postscript. Файл получается в результате этой дистилляции другой. Совсем.

Если есть желание посмотреть, как cups преобразует многострадальный документ для печати: в /etc/cups/cupsd.conf установить параметр:

LogLevel debug

Трассировку смотреть в /var/log/cups/error_log

Пользователь решил продолжить мысль 19 Ноября 2009, 16:19:10:
P.S.
После изменения конфигурации, чтобы изменения вступили в силу, cups нужно хорошенько "испугать", например:
sudo invoke-rc.d cups restart
« Последнее редактирование: 19 Ноября 2009, 16:19:10 от aleXPS »

Оффлайн Saha

  • Автор темы
  • Активист
  • *
  • Сообщений: 517
    • Просмотр профиля
2 aleXPS
Спасибо большое за столь развернутое объяснение!

Здесь я приложу те файлы, что ты выложил на launchpad'е и алгоритм (правда, я сам пока не тестировал работоспособность алгоритма=)

В архиве 3 файла.
Файл oo3.pstops надо положить в /usr/lib/cups/filter (это доп. фильтр, прогоняющий полученный из ОО ps-файл в ps утилиткой ps2ps).
Файлы oopstops.types и oopstops.convs уже должны находиться в /etc/cups, необходимо добавить в них строчки, которые в приложенных файлах содержатся.
После этого надо перестартовать демон cups (например, командой invoke-rc.d cups restart)

P.S. Все-таки, остается вопрос: что же за ps-файл создает OO? Вроде, там все на месте, а буквы пропадают =)

P.P.S. У кого данное решение работает - отпишитесь, плиз!
« Последнее редактирование: 19 Ноября 2009, 17:12:28 от Saha »

Оффлайн aleXPS

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
To: Saha
Re:
   P.S. Все-таки, остается вопрос: что же за ps-файл создает OO? Вроде, там все на месте, а буквы пропадают =)
Может, они знают?
http://bugs.ghostscript.com/show_bug.cgi?id=690935

Оффлайн Saha

  • Автор темы
  • Активист
  • *
  • Сообщений: 517
    • Просмотр профиля
У меня также в Document Viewer отображается и в том и в том файле Й  ???

 

Страница сгенерирована за 0.056 секунд. Запросов: 23.