How I interact with PDFs using Free software and Linux in 2025
This blogpost contains some brief thoughts on how I interact with PDFs. It is not an exhaustive list of Free software PDF tools for Linux. I know that there are other options (including Okular, and LibreOffice’s Draw); some I have tried and some I have not. I use Gnome’s default tool, evince , also known as “Document Viewer”. The function for leaving notes on a PDF is pretty useful, although I don’t know how well it works if I wanted to share that file-with-notes with someone else, especially someone else using different software. When I review a contract or an article, I still like to do so with a pen in my hand. I don’t know why. Since I am using a ThinkPad with a touchscreen, and support for a pen , this is no problem. I convert the contract/article into PDF, most often using LibreOffice Writer’s export function. I then open the resulting PDF in Xournal++ , which is superbly useful piece of software. I like writing advice notes in Markdown, but I tend to convert them to PDF before sharing them as a “final” version. I am using pandoc and typst to do this , and it works really well, resulting in a nicely-formatted PDF. If I am converting a document into PDF for ease of scribbling, I use LibreOffice Writer’s export function. For scanning documents to PDF and OCRing them, I use paperless-ngx . I don’t appear to have blogged about it, but the gist is that I have configured our Brother MFC L2750DW to scan to a directory on a server as PDF, and paperless-ngx watches that directory and then ingests the resulting files. It works well, although one day I should move it from a Raspberry Pi 4 to something a little beefier. I use three main tools for “doing stuff” to PDFs. PDFArranger makes adding pages, deleting pages, splitting files, rotating pages, and moving pages around very easy. I use it quite a lot. I discovered Stirling-PDF more recently, and I’ve self-hosted an instance of Stirling-PDF for just under a year now. It is a web interface for a range of tools which offer quite a lot of PDF-related functions, and it works well on both desktop and mobile browsers. For batch changes to PDFs, I like PDFtk - apparently, there is a GUI version, but I use the command line tool. I find it especially useful for rotating all the pages in a file because someone has scanned a document poorly. If someone needs me to sign a PDF, in the sense of adding my name to it, I tend to use Xournal++. Rarely do I need a digital representation of my scribbled signature, but when I do, I also use Xournal++, either scribbling on the document or adding an image. For an electronic signature, I’ve experimented with LibreOffice’s functionality, but I didn’t get as far as I wanted. I should look into it some more. I ran an instance of DocuSeal for a while, but frankly I just did not use it enough to justify keeping it going. I was impressed with it and, had I needed its functionality more often, I imagine that I would have kept it. This is, fortunately, not something that I need to do day to day. I have a clunky-but-seems-to-work approach , for those very rare cases when I need it. If there is a better approach to doing this using Free software on Linux, I’d love to hear about it. I haven’t had to do this in a while, but I’ve note in my wiki that says that this ghostscript incantation has worked for me in the past: