自动将 odt 转换为 pdf

自动将 odt 转换为 pdf

我正在 Libre 办公室创建一些文档,并且我必须始终以 的形式发送它们.pdf

但每次我都忘记将其导出为 pdf,那么有什么办法可以在每次保存文档时自动将.odt文档转换为 pdf 吗?pdf

我只有大约 4 个文档,我不断对它们进行更改,因此每次我进行更改并保存时,odt我都需要在相应的 pdf 文件中更新该更改。

附言:我知道unoconv可以通过命令行进行转换,但是有没有办法自动完成转换?

另一个 Ps:我发现有一种名为 inotify 和 inotify-tools 的东西,可用于在文件更改时触发事件。但我不知道如何使用它。

答案1

尝试此扩展(与 Gnome-Shell/Quantal 上的 LibreOffice 配合良好):

MultiSave 使您能够同时以您选择的 OpenDocument、MS Office 和/或 PDF 格式保存文档。


多格式保存是 MultiSave 的一个新更新分支,旨在与 Libreoffice 的最新修订版更好地配合使用:

MultiFormatSave 可让您同时以 OpenDocument、MS Office 和/或 PDF 格式保存文档,供 Writer、Calc 或 Impress 使用

从 starXpert MultiSave 扩展中分叉

确保选择适合您的 LibreOffice 版本的版本,例如1.3.2适用于 LO 3.5 和 3.6。

答案2

使用来自 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

您还可以从命令行运行 libreoffice 来实现您的目的。这为您提供了批量转换的优势,但单个文件也是可能的。此示例将当前目录中的所有 ODT 文件转换为 PDF:

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

使用以下命令获取有关命令行选项的更多信息:

man libreoffice

答案4

这篇文章解释了如何使用 CUPS 从命令行非常简单地将 odt 转换为 pdf。

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

您实际上可以从一个目录将所有 odt 批量转换为 pdf,这样实际上可以节省您每次都记住导出为 pdf 的时间!

希望这可以帮助!

相关内容