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


12

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

Answers:


11

从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


4

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

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

自动键脚本

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

sudo apt-get install autokey-gtk xdotool

现在,在自动键中,转到“新建”->“脚本”。将以下代码添加到新脚本中:

#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后退出。


@HermanJaramillo:我很高兴这有所帮助:)但是,请记住,这确实是一个hack。我仍在寻找一种更强大的方法。
shivams

1
这是到目前为止我所见过的最好的软件!它就像一个shell脚本,但适用于GUI应用程序!:)
matthieu

2

我想我有答案。在主目录中运行此简单的find命令之后:

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

您会找到以下目录:

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

下面是目录:

docdata

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


奇迹般有效。
JohnRos
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.