web-dev-qa-db-fra.com

Conversion automatique en pdf

Je crée quelques documents dans Libre Office et je dois toujours les envoyer en tant que .pdf.

mais chaque fois que j'oublie de l'exporter au format pdf, existe-t-il un moyen de convertir automatiquement le document .odt en pdf à chaque fois que je sauvegarde le document?

Je n'ai que 4 documents environ, je continue à y apporter des modifications. Ainsi, chaque fois que je modifie et sauvegarde la odt j'ai besoin que cette modification soit mise à jour dans le fichier pdf correspondant.

Ps: Je comprends que unoconv peut être utilisé pour convertir en ligne de commande, mais existe-t-il un moyen de le faire automatiquement?

Un autre ps: j'ai découvert qu'il existait quelque chose appelé inotify et inotify-tools, qui peut être utilisé pour déclencher des événements lorsqu'un fichier est modifié. Mais je ne sais pas comment l'utiliser.

5
Gautam

Exemple rapide et incorrect utilisant le code du projet pyinotify [http://github.com/seb-m/pyinotify]

Vous devrez modifier WATCHED_DIR dans votre répertoire contenant les fichiers ODT. Pensez également à installer unoconv en premier.

# 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 __== '__main__':
    handler = EventHandler()
    notifier = pyinotify.Notifier(wm, handler)
    wdd = wm.add_watch(WATCHED_DIR, mask, rec=True)        
    notifier.loop()

Enregistrez ceci sous le nom odtwatcher.py puis exécutez-le en arrière-plan.

python odtwatcher.py &
3

Essayez cette extension (fonctionne bien avec LibreOffice sur Gnome-Shell/Quantal):

MultiSave vous permet de sauvegarder simultanément un document aux formats OpenDocument, MS Office et/ou PDF, à votre choix.


MultiFormatSave est une nouvelle version mise à jour de MultiSave, conçue pour mieux fonctionner avec les révisions récentes de Libreoffice:

MultiFormatSave vous permet de sauvegarder simultanément un document aux formats OpenDocument, MS Office et/ou PDF au choix de Writer, Calc ou Impress.

Forked à partir de l'extension starXpert MultiSave

Assurez-vous de choisir la version appropriée pour votre version de LibreOffice, par exemple. 1.3.2 pour LO 3.5 et 3.6.

3
Ogu

Vous pouvez également exécuter libreoffice à partir de la ligne de commande à cette fin. Cela vous donne l'avantage de la conversion par lots, mais des fichiers uniques sont également possibles. Cet exemple convertit tous les fichiers ODT du répertoire actuel en PDF:

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

Obtenez plus d'informations sur les options de ligne de commande avec:

man libreoffice

Remarque: En raison de bug 37531 , vous devez fermer toutes les instances en cours d'exécution de LibreOffice avant que cette commande ne fonctionne.

1
teknohelio

Cet article explique comment convertir très simplement odt en pdf à partir de la ligne de commande en utilisant CUPS.

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

Vous pouvez en fait convertir par lots tous les fichiers PDF d'un répertoire, ce qui vous évitera d'avoir à vous souvenir d'exporter au format PDF à chaque fois!

J'espère que cela t'aides!

1
circumpolar