Question: The PDF viewer Okular (part of KDE desktop) has lots of nice features and supports lots of file formats.
One of the things I like about it is the comments and annotations.
Unfortunately, all of the comments and metadata (like last viewed page) get stored locally in:
**~/.kde/share/apps/okular/docdata**

Is there any way to make Okular store them in the PDF itself?

Answer: 
After making any annotation using Okular, 

Go the the Print option (in File Menu or Ctrl+P) and then in the **Name** option change the value to Print to File(PDF) and in the **Output file** option give the path of the output file you need. 

Voila, your annotations are now a part of your new PDF.
Current version of Okular allows one to save the PDF with the annotations by going into File -> Save As.

However, I wanted something automated. So, I created an Autokey script so that whenever I close my PDF, the annotations are automatically saved in the PDF itself. Note that **this script will save your PDF overwriting the original PDF.**

The Autokey Script
------------------

First, you will need to install `autokey-gtk` and `xdotool` first:

```
sudo apt-get install autokey-gtk xdotool

```

Now, in autokey, go to New -> Script. Add the following code to your new script:

```python
#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

```

You can now assign a window filter and hotkey to this script. In window filter, add `.*okular.*`. And in hotkey, I've used `<ctrl>+s`. You could use anything else that you prefer.

So, now whenever I have to quit okular, I use `Ctrl``S`, and okular quits after saving my pdf.