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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

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

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

Оффлайн Vendetta

  • Новичок
  • *
  • Сообщений: 7
  • Call me V
    • Просмотр профиля
Как-то поборол проблему в 9.04, похоже, с бубном; сегодня переставил на 9.10. msttcorefonts не ставил, кинул все новые шрифты в ~/.fonts; печатал из OOo calc таблицу, шрифт вообще сторонний, что-то вроде Academy.
Тут вроде такого не встречал: не печатает строчную "ф". Прямо издевательство какое-то.
Ну ладно, мы со своей кириллицей, можно и проигнорировать, а -- оффотопом -- Network Manager, в котором pppoe не работает? "Система не загружается" -- вот какого бага не хватает, надеюсь его реализуют в 10-й Ubuntu, а потом на launchpad-е в течение полугода мусолить его...
Все хотят на небо, но никто не хочет умирать.

Оффлайн aleXPS

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
К вопросу "почему" или "где баг". Г-н Ken Sharp достаточно подробно изложил http://bugs.ghostscript.com/show_bug.cgi?id=690935. Если кратко, то postscript из openoffice встраивает Й, как некий специальный глиф ".notdef", который обычно используется для отображения неизвестных (в шрифте) символов. При этом, то, что обычно используется для .notdef (пустой прямоугольник) тоже встраивается в postscript, но уже как не специальный, а как обычный символ. После этого всего, в postscript задается такая перекодировка символов, что Й оказывается неизвестной и для отображения используется глиф .notdef, который она самая и есть. Кодировка также настроена на то, чтобы "настоящие" неизвестные символы отображались прямоугольником, но заданным не специальным глифом, а обычным "гражданским".

При этом всем, будут ли отображаться символы .notdef, зависит от утилиты, которая отображает. ghostscript, например, из postscript отображает по-умолчанию, из pdf - если задана опция.

Начиная, с некой, не очень давней версии, в Ubuntu вместе с cups 1.3 идет патч "pdftops-cups-1.4.dpatch". Он меняет преобразователь pdf-postscript с использовавшегося ранее xpdf на pdftops (фронт-энд к библиотеке poppler). Скорее всего, он по-умолчанию не отображает .notdef, а следовательно и Й и др. символы, которым посчастливилось быть заданными описанным в начале образом. Тот, что был ранее скорее всего отображал. В cups 1.4 это изменение есть оригинально, собственно "pdftops-cups-1.4.dpatch" — бэкпорт.

Оффлайн Saha

  • Автор темы
  • Активист
  • *
  • Сообщений: 517
    • Просмотр профиля
2 aleXPS
Первопричина вроде бы найдена, это хорошо =)
Но баг-то остался, что с ним делать?

P.S. То есть, баг возникает на этапе конвертации в pdf в процессе работы cups'а? (Ну не баг, то есть, а фича=)
P.P.S.
Цитировать
Начиная, с некой, не очень давней версии, в Ubuntu вместе с cups 1.3 идет патч "pdftops-cups-1.4.dpatch". Он меняет преобразователь pdf-postscript с использовавшегося ранее xpdf на pdftops (фронт-энд к библиотеке poppler).
То есть, оригинальный cups не содержит этого патча, и если поставить купс с исходников, то вроде как все должно работать? Однако, как пишут, этого не происходит.



Update:

попробовал сконвертить свой ps-файл, полученный из ОО, с помощью команды:
gs -dRENDERTTNOTDEF -sDEVICE=pdfwrite -q -dNOPAUSE -dBATCH -sOutputFile=oo.pdf oo.psВ Evince отображается буква Й (она и раньше отображалась, без опции -dRENDERTTNOTDEF), а в Okular и kpdf - нет. Так что под сомнением, что это панацея.

Прикладываю здесь ps и pdf файлы

P.S. Из Evince, кстати, печатает, а из Okular - нет  :idiot2:

Правда, у меня версия купс 1.3.11, установлена из исходников с сайта



Update2:
Как было отмечено ранее, если перед конвертацией в pdf сделать
ps2ps oo.ps oo2.psа потом
ps2pdfwr oo2.ps oo.pdfто буковка в Okular появляется  :D


Пользователь решил продолжить мысль 23 Ноября 2009, 23:05:52:
Как-то поборол проблему в 9.04, похоже, с бубном; сегодня переставил на 9.10. msttcorefonts не ставил, кинул все новые шрифты в ~/.fonts; печатал из OOo calc таблицу, шрифт вообще сторонний, что-то вроде Academy.
Тут вроде такого не встречал: не печатает строчную "ф". Прямо издевательство какое-то.
Ну ладно, мы со своей кириллицей, можно и проигнорировать, а -- оффотопом -- Network Manager, в котором pppoe не работает? "Система не загружается" -- вот какого бага не хватает, надеюсь его реализуют в 10-й Ubuntu, а потом на launchpad-е в течение полугода мусолить его...

Создай из ОО ps-файл с одинокой буковкой "ф" в левом верхнем углу и приложи сюда =)
« Последнее редактирование: 24 Ноября 2009, 01:06:16 от Saha »

Оффлайн Vendetta

  • Новичок
  • *
  • Сообщений: 7
  • Call me V
    • Просмотр профиля
Создай из ОО ps-файл с одинокой буковкой "ф" в левом верхнем углу и приложи сюда =)
Здесь, похоже, все нормально, или я ошибаюсь? Дело в драйвере принтера?
Все хотят на небо, но никто не хочет умирать.

Оффлайн Frank

  • Старожил
  • *
  • Сообщений: 1799
  • Профессиональный любитель
    • Просмотр профиля
    • Народный форум Николаева
Создай из ОО ps-файл с одинокой буковкой "ф" в левом верхнем углу и приложи сюда =)
Здесь, похоже, все нормально, или я ошибаюсь? Дело в драйвере принтера?
на печати пусто

Оффлайн Saha

  • Автор темы
  • Активист
  • *
  • Сообщений: 517
    • Просмотр профиля
Создай из ОО ps-файл с одинокой буковкой "ф" в левом верхнем углу и приложи сюда =)
Здесь, похоже, все нормально, или я ошибаюсь? Дело в драйвере принтера?
Не, все плохо=)
Такие же симптомы, как и у остальных

Оффлайн aleXPS

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
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 нужно добавить.
« Последнее редактирование: 27 Ноября 2009, 11:26:20 от aleXPS »

Оффлайн r0di0n

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
2 aleXPS

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

P.P.S. У кого данное решение работает - отпишитесь, плиз!
Вернулся в эту тему, когда обнаружил что system-config-printer потерялся после накатывания cups из сырцов.

Сделал согласно цитате выше - спасибо, мне помогло - буква Й появилась там где надо. 
Небольшое дополнение к инструкции: Файлов oopstops.types и oopstops.convs не было в /etc/cups, зато они оказались в /usr/share/cups/mime, где их и постигла замена.

Оффлайн Saha

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

Может, стоить написать баг-репорт и в debian? (Я не совсем в курсе, как они взаимодействуют с launchpad'ом=)

P.S. Также, наверное, стоит связаться с модераторами форума и/или русской командой Убунты? Возможно, они могут ускорить решение данной проблемы.
« Последнее редактирование: 27 Ноября 2009, 16:46:14 от Saha »

Оффлайн aleXPS

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Цитировать
Небольшое дополнение к инструкции: Файлов oopstops.types и oopstops.convs не было в /etc/cups, зато они оказались в /usr/share/cups/mime, где их и постигла замена.
Это, скорее всего, после установки из исходников. Вроде как должны быть в /etc/cups. Как и вся общесистемная конфигурция в дебиане

Оффлайн aleXPS

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Хорошие новости от OOo, http://www.openoffice.org/issues/show_bug.cgi?id=106833, 3.2 может оказаться более дружелюбным к печати кирилицей

Оффлайн Saha

  • Автор темы
  • Активист
  • *
  • Сообщений: 517
    • Просмотр профиля
Да, говорят, что в ОО3.2 этот баг (возможно) пофиксен. Я так понимаю, что от 3.2 есть только бета, но там уже исправлено. У кого есть возможность, установите ОО3.2 и отпишитесь, что да как  ;)

Оффлайн RubikS

  • Новичок
  • *
  • Сообщений: 40
    • Просмотр профиля
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. У кого данное решение работает - отпишитесь, плиз!

В Ubuntu 9.10 , данное решение не работает, принтер (HP LJ-1020) выдает ошибку да и при загрузке системы она встает в ступор пока не вынуть-вставить USB-разъем принтера.
Логи ошибок не могу выложить из-за нехватки времени, но выложу позже.



Оффлайн sergeyminsk

  • Участник
  • *
  • Сообщений: 218
  • AD INFINITUM
    • Просмотр профиля
    • linuxfresh - опыт новичка в linux
Да, говорят, что в ОО3.2 этот баг (возможно) пофиксен. Я так понимаю, что от 3.2 есть только бета, но там уже исправлено. У кого есть возможность, установите ОО3.2 и отпишитесь, что да как  ;)

Скачал dev-билд 3.2.0 320m7 9461, ubuntu 9.04, cups 1.3.9-17 - баг с буквой Й присутствует

Оффлайн sergeyminsk

  • Участник
  • *
  • Сообщений: 218
  • AD INFINITUM
    • Просмотр профиля
    • linuxfresh - опыт новичка в linux
Так это, кто нибудь почесался баг исправить? Что то не понял... Вроде разработчикам пох.

 

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