Gau*_*tam 5 pdf conversion libreoffice document
我正在 Libre 办公室创建一些文件,我必须始终将它们作为.pdf.
但是每次我忘记将其导出为 pdf 时,有什么方法可以.odt在pdf每次保存文档时将文档自动转换为它?
我只有大约 4 个文档,我一直在对它们进行更改,因此每次我进行更改并保存时,odt我都需要在相应的 pdf 文件中更新该更改。
Ps:我知道unoconv可以通过命令行进行转换,但有没有办法自动转换?
另一个 Ps:我发现有一种叫做 inotify 和 inotify-tools 的东西,可以用来在文件更改时触发事件。但我不知道如何使用它。
小智 3
使用 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()
Run Code Online (Sandbox Code Playgroud)
将其另存为 odtwatcher.py,然后在后台运行它
python odtwatcher.py &
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6423 次 |
| 最近记录: |