如何保留在 Okular 中创建的突出显示和注释?

如何保留在 Okular 中创建的突出显示和注释?

我必须阅读各种研究论文,并且在课程中我必须突出显示和注释。但是如果我稍后重命名文件或更换机器,突出显示和注释将会丢失,因为它们是单独存储的。如果我将来更换机器,如何保留在 Okular 中创建的这些亮点/注释?

答案1

从 KDE 4.2 开始,Okular 具有“文档存档”功能。这是 Okular 特有的格式,用于存储文档以及与其相关的各种元数据(目前只有注释)。您可以通过选择文件 → 导出为 → 文档存档,从打开的文档中保存“文档存档”。要打开 Okular 文档存档,只需使用 Okular 打开它,就像打开 PDF 文档一样。

自 Okular 0.15 起,您还可以将注释直接保存到 PDF 文件中。此功能仅在 Okular 已使用 Poppler 渲染库 0.20 或更高版本构建时可用。您可以使用文件 → 另存为... 保存带有注释的 PDF 文件的副本。

阅读此处:https://docs.kde.org/stable5/en/kdegraphics/okular/annotations.html

答案2

Okular 的当前版本允许通过进入文件 -> 另存为来保存带有注释的 PDF。

但是,我想要一些自动化的功能。因此,我创建了一个 Autokey 脚本,这样每当我关闭 PDF 时,注释都会自动保存在 PDF 本身中。请注意该脚本将保存您的 PDF 并覆盖原始 PDF。

自动键脚本

首先,您需要autokey-gtk安装xdotool

sudo apt-get install autokey-gtk xdotool

现在,在 autokey 中,转到新建 -> 脚本。将以下代码添加到新脚本中:

#This is used to save PDF in okular so that the annotations persist in the PDF file itself
#We have to use to `xdotool` to bring the dialogs back into focus, otherwise they are losing focus 
import subprocess

keyboard.send_keys("<ctrl>+<shift>+s")
time.sleep(0.4)
subprocess.call(["xdotool", "windowfocus", "`xdotool getwindowfocus`"])
time.sleep(0.1)
keyboard.send_key("<enter>")
time.sleep(0.1)
subprocess.call(["xdotool", "windowfocus", "`xdotool getwindowfocus`"])
time.sleep(0.1)
keyboard.send_key("<tab>")
time.sleep(0.1)
keyboard.send_key("<enter>")
time.sleep(0.1)
subprocess.call(["xdotool", "windowfocus", "`xdotool getwindowfocus`"])
time.sleep(0.5)
keyboard.send_keys("<ctrl>+q") #Quit Finally

现在,您可以为该脚本指定窗口过滤器和热键。在窗口过滤器中,添加.*okular.*。在热键中,我使用了<ctrl>+s。您可以使用您喜欢的任何其他内容。

所以,现在每当我必须退出 okular 时,我都会使用CtrlS,并且 okular 会在保存我的 pdf 后退出。

答案3

我想我已经找到答案了。在主目录中运行这个简单的 find 命令后:

find -type d -iname "*okular*" -print

您将找到该目录:

/home/YOUR_USER_NAME_HERE/.kde/share/apps/okular

其下方是目录:

docdata

docdata目录包含您使用 Okular 打开的每个文档的 xml 文件。只需备份此文件夹并带到您的新机器上,然后将其粘贴到同一位置即可。您的注释已保留!

相关内容