Конвертация из ODT в PDF

В связи с тем, что не у всех имеется возможность прочитать документы в формате ODT, возникла необходимость переписать генератор счетов для регистраторов. Но я решил пойти другим путем ;-)

Вот, может еще кто не знает:

  1. Устанавливаем пакеты unoconv и openoffice.org-writer
  2. Запускаем в фоне сервер OpenOffice:
    # unoconv --listener &
    [1] 1234
  3. Конвертируем:
    $ unoconv -v -f pdf /tmp/filename.odt
    Input file: /tmp/filename.odt
    Selected output format: Portable Document Format [.pdf]
    Selected ooffice filter: writer_pdf_Export
    Used doctype: document
    Output file: /tmp/filename.pdf

Можно запускать сервер офиса только перед генерацией документов, а можно все время дежать его запущенным, если нужен достаточно часто (чуть больше 100 Mb в памяти, X-ы не нужны).

Способ хорош тем, что доступна конвертация между всеми форматами, которые поддерживает OpenOffice (естественно, что для некоторых форматов может потребоваться не только openoffice.org-writer). Т.е. если можно документ в одном формате офисом открыть, а в другом сохранить — конвертация произойдет.

Ну а плох тем, что тянет за собой с полгига всякого гамуза (если офиса и java-машины в системе ранее не было). Впрочем, винты сейчас большие ;-)

UPD: Запускаем через incron:

# aptitude install incron
# echo «fatality» >> incron.allow
# mkdir /home/fatality/incrontest
# chown fatality:fatality /home/fatality/incrontest
# incrontab -u fatality -e

/home/fatality/incrontest/ IN_MOVED_TO /home/fatality/bin/incrontest.sh $@ $#

# cat /var/spool/incron/fatality
# su fatality
% vim /home/fatality/bin/incrontest.sh

#!/bin/sh

cd $1
/usr/bin/unoconv -v -f pdf ${1}${2}

% mv 1.odt /home/fatality/incrontest/

Конвертация из ODT в PDF: 0 комментариев

  1. не пробовали запускать по событию ?

    я в incron засунул, и оттуда оно не работает, хотя в ручную скрипт запускается..

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>