Автоматическое преобразование odt к PDF

Я создаю несколько документов в офисе Libre, и я должен всегда отправлять их как .pdf.

но каждый раз я забываю экспортировать его как PDF, Так есть ли любой путь к автоматическому преобразованию .odt документ в pdf каждый раз я сохраняю документ?

У меня есть только приблизительно 4 документа, я продолжаю вносить изменения на них, Таким образом, каждый раз я вношу изменение и сохраняю odt Мне нужно то изменение, которое будет обновлено в соответствующем файле PDF.

Ps: Я понимаю это unoconv может использоваться для преобразования через командную строку, но там способ автоматически сделать это?

Другой ps: Я узнал, что существует что-то названное inotify и inotify-инструментами, и это может использоваться для инициирования событий, когда файл изменяется. Но я понятия не имею о том, как использовать его.

5
задан 13 October 2011 в 20:12

4 ответа

Быстрый и грязный пример с помощью кода из pyinotify проекта [http://github.com/seb-m/pyinotify]

Необходимо будет изменить WATCHED_DIR на каталог, содержащий файлы ODT. Также не забудьте устанавливать unoconv сначала.

# Notifier example from tutorial
#
# See: http://github.com/seb-m/pyinotify/wiki/Tutorial
#
# odtwatcher.py

import os
import pyinotify
import subprocess

WATCHED_DIR = '/tmp/test'

wm = pyinotify.WatchManager()  # Watch Manager
mask = pyinotify.IN_MODIFY

class EventHandler(pyinotify.ProcessEvent):
    def process_IN_MODIFY(self, event):
        fname = event.pathname            
        if os.path.splitext(fname)[1] == '.odt':
            print 'MODIFIED: ', fname
            args = ['unoconv', '-f', 'pdf', fname]
            try:
                subprocess.Popen(args)
            except OSError as e:
                print 'Could not convert file %s to PDF. Error %s' % (fname, str(e))

if __name__ == '__main__':
    handler = EventHandler()
    notifier = pyinotify.Notifier(wm, handler)
    wdd = wm.add_watch(WATCHED_DIR, mask, rec=True)        
    notifier.loop()

Сохраните это как odtwatcher.py и затем выполните его в фоновом режиме

python odtwatcher.py &
3
ответ дан 13 October 2011 в 20:12

Попробуйте это расширение (хорошо работает с LibreOffice в Gnome-Shell / Quantal):

MultiSave позволяет одновременно сохранять документ в OpenDocument, MS Office и / или PDF форматы по вашему выбору.


MultiFormatSave - это новый обновленный форк MultiSave, разработанный для лучшей работы с последними ревизиями Libreoffice:

MultiFormatSave позволяет одновременно сохранять документ в форматах OpenDocument, MS Office и / или PDF, выбранный вами для Writer, Calc или Impress

, созданный из мультисейв-расширения starXpert

. Убедитесь, что выбран соответствующий релиз для вашей версии LibreOffice, например 1.3.2 для LO 3.5 и 3.6.

0
ответ дан 13 October 2011 в 20:12

Этот пост объясняет, как очень просто преобразовать ODT в PDF из командной строки, используя CUPS.

http://www.yamamoto.com.ar/blog/?p=50

На самом деле вы можете конвертировать все odt в pdf из каталога, так что на самом деле избавьте вас от необходимости не забывать экспортировать в PDF каждый раз!

Надеюсь, это поможет!

0
ответ дан 13 October 2011 в 20:12

Вы также можете запустить libreoffice из командной строки для вашей цели. Это дает вам преимущество пакетного преобразования, но также возможны отдельные файлы. В этом примере все файлы ODT в текущем каталоге преобразуются в PDF:

libreoffice --headless --convert-to pdf *.odt

Дополнительная информация о параметрах командной строки: 112], вы должны закрыть все запущенные экземпляры LibreOffice, прежде чем эта команда сработает.

0
ответ дан 13 October 2011 в 20:12

Другие вопросы по тегам:

Похожие вопросы: