В начале июня мы уже писали о начале работы над библиотекой libmspub, реализующей чтение и конвертирование файлов Microsoft Publisher в OpenDocument и SVG. Пора подвести промежуточные итоги.
Библиотека разрабатывается в рамках программы Google Summer of Code 2012. Основную работу выполняется Бреннан Винсент под руководством Фридриха Штрбы (LibreOffice) и Вали Филиппова (re-lab). Поскольку на позапрошлой неделе состоялась промежуточная оценка проекта, была выпущена первая официальная версия, а сразу следом за ней — обновление.
Пример конвертирования шаблона, взятого со stocklayouts.com
Что изменилось
За прошедшие 6 недель было внесено достаточно много изменений. Вот краткий перечень самого главного:
- поддерживается намного больше фигур;
- читаются мастер-страницы;
- поддерживается текст в фигурах, включая поля;
- улучшена поддержка стилей, заливок;
- появилась поддержка групп, включая вложенные группы;
- улучшена поддержка трансформаций объектов и групп: вращение, зеркальное отражение;
- улучшена поддержка растра.
Кроме того, библиотека начала честно читать значение интерлиньяжа, но пока что из-за ошибки в самом LibreOffice работает это не всегда. Вот пример:
Межстрочное расстояние сбивается в заголовке
Если хотите убедиться в том, что ваши файлы будут нормально читаться, рекомендуем связаться с разработчиками и накидать им примеров.
Версии
С точки зрения охвата функциональности лучше всего поддерживаются файлы Publisher 2002. Библиотека также читает файлы в форматах 97, 98, 2000 и 2010, но пока что с меньшей точностью. Особых сложностей, требующих непомерных усилий при реверс-инжинеринге, здесь нет: просто на всё нужно время.
На днях Валя Филиппов посмотрел на файлы свежевыпущенной беты MS Office 2013 и пришёл к выводу, что формат файлов идентичен формату 2010. Так что к списку можно приплюсовать и Publisher 2013.
Скачивание и установка
Конечная версия библиотеки войдёт в состав LibreOffice 3.7. Если дожидаться не хочется, можно всё собрать из исходного кода. Как обычно, рекомендуется брать код libmspub из репозитория Git. Конвертер в OpenDocument входит в состав пакета writerperfect, и его тоже надо брать из Git.
Инструкция может показаться вам знакомой:
1. Собрать и установить libwpd
$ git clone git://libwpd.git.sourceforge.net/gitroot/libwpd/libwpd $ cd libwpd $ ./autogen.sh && ./configure && make && sudo make install
2. Собрать и установить libwpg:
$ git clone git://libwpg.git.sourceforge.net/gitroot/libwpg/libwpg $ cd libwpg $ ./autogen.sh && ./configure && make && sudo make install
3. Собрать и установить libmspub:
$ git clone git://anongit.freedesktop.org/libreoffice/libmspub $ cd libmspub $ ./autogen.sh && ./configure --prefix=/usr && make && sudo make install
4. Собрать и установить writerperfect:
$ git clone git://libwpd.git.sourceforge.net/gitroot/libwpd/writerperfect $ cd writerperfect $ ./autogen.sh && ./configure && make && sudo make install
После этого можно пользоваться pub2odg для конвертирования в OpenDocument и pub2xhtml для конвертирования в SVG (как обычно, страницы в формате SVG добавляются в файл XHTML).
Новостей от команды Scribus касательно поддержки файлов Publisher через libmspub не поступало. Впрочем, они сейчас заняты доводкой версии 1.5.0.
Оставить комментарий