3 ms·
I've been using Xournalpp[1] for many years, highlighting books as I read them, adding in text/hand drawn annotations in whitespaces if necessary. Unlike other
by frfl 3y ago
I've been using Xournalpp[1] for many years, highlighting books as I read them, adding in text/hand drawn annotations in whitespaces if necessary. Unlike other PDF readers/annotators, it saves a separate file, so the original PDF is untouched. It can also export the annotated PDF as a new PDF with highlights and annotations. I've used Xournalpp with a convertible laptop with a builtin digitizer+pen, but you can also use it with a mouse to highlight stuff, drawing would be awkward with a mouse though.
Obsidian[2] also has PDF support, where you can open a markdown document side by side with the PDF to take notes as you read. I think it also lets you highlight the PDF itself.
Emacs I think has a similar feature, via plugins/org-mode(?) to the Obsidian setup.
And of course your typical PDF reader probably has support for highlighting PDFs too, but I find them clunky and they save by exporting a PDF, which can be a bit heavy-handed IMO compared to just saving the annotations/highlights as a separate file as Xournalpp does.
[1]: https://github.com/xournalpp/xournalpp/ https://github.com/xournalpp/xournalpp/
[2]: https://obsidian.md https://obsidian.md
- wolverine876 3y ago> Unlike other PDF readers/annotators, it saves a separate file, so the original PDF is untouched. Just to give people another perspective on these issues [edit: not to deny the parent's perspective, just to add another]: In PDFs, annotations are effectively (or actually?) on a separate layer from the document. It's not like marking up a paper book; in a PDF the annotations leave the original untouched, and can be easily hidden or removed. Another advantage of using PDF annotations is that they are retained, readable, and editable for decades. There's no other file to retain. And if Xournalpp stops being developed, what happens to your annotations?
- frfl 3y agoFair enough. I was providing alternatives, not prescribing a single solution. You'll notice I said what I use and also provided suggestions that I don't use. Xournalpp uses layers as well, hiding annotations is also possible there. Just a different solution to the same problem. Xournalpp, is free and open source. It is actually a fork of an older software called Xournal. If it stops being developed, C++ compilers aren't going anywhere, I'll compile it myself -- beyond that it's just pedantic to discuss what and what won't be possible in decades. PDF readers on the other hand, especially proprietary ones have a bad habit of, for lack of a better word, enshitifying (cloud, saas, subscription, etc). I've had PDF a editor corrupt my PDF as well (sample size 1, so not indicative of all PDF editors), my fault for not having backups I suppose, but I've avoided them since. But whatever works for you, I'm not here to dictate what you can or should use. Just providing ideas as the OP originally asked in the root comment. Anyhow, the only solution that will survive ultimately is plain text. All others rely on abstractions upon abstraction (C++, compilers, libraries, etc). Plaintext is bits and bytes you can decode by hand if you wanted.
- wolverine876 3y ago> Fair enough. I was providing alternatives, not prescribing a single solution. Yes, I agree completely. Sorry that I gave a different impression. > Xournalpp, is free and open source. It is actually a fork of an older software called Xournal. If it stops being developed, C++ compilers aren't going anywhere, I'll compile it myself -- beyond that it's just pedantic to discuss what and what won't be possible in decades. Few users will compile anything, and eventually incompatibilities arise between the application and the latest platform. My PDF reader functions fine with documents that are decades old - that is part of the PDF specification; it's not pedantic, it's deliberately and successfully engineered. > PDF readers on the other hand, especially proprietary ones have a bad habit of, for lack of a better word, enshitifying (cloud, saas, subscription, etc). I've had PDF editors corrupt my PDF as well, my fault for not having backups I suppose, but I've avoided them since. There are many, many PDF readers. I have no problem finding a good one (I agree, stay away from Adobe, which you seem to describe). Yes, I'd be careful with PDF editors - that's not really what PDFs are designed for afaik.
- frfl 3y agoOne of the nice things about Xournalpp is that is just plain XML (the save file). So its really just plaintext, I don't have to bother with reading hundreds of pages of PDF spec to try and write a reader in the future. If I needed to, I only need to write an application capable of rendering a PDF page, then drawing text/lines as described by the XML. Assuming libraries to render the PDF will continue to exist in this theoretical future we're describing here. <stroke tool="highlighter" color="#00ff007f" width="7.86" fill="60" capStyle="butt">254.802 713.98302 283.955 713.98302</stroke> <stroke tool="highlighter" color="#00ff007f" width="9" fill="60" capStyle="butt">283.955 714.01302 539.992 714.01302</stroke> <stroke tool="highlighter" color="#00ff007f" width="0" fill="60" capStyle="butt">539.992 718.51302 539.992 718.51302</stroke> <text font="Sans" size="8" x="456.87471" y="427.46622" color="#ff0000ff" ts="0" fn="">Here the first capture group is `([\"'])`, which captures either a `"` or a `'`. Then the `(.-)` lazy matches any thing, and finally `%1` matches the original type of (closing) quote</text> </layer> </page> <page width="612" height="792"> <background type="pdf" pageno="95"/> <layer> <stroke tool="highlighter" color="#00ff007f" width="9" fill="60" capStyle="butt">120 78 169.674 78</stroke> <stroke tool="highlighter" color="#00ff007f" width="7.86" fill="60" capStyle="butt">265.784 77.97 292.676 77.97</stroke> <stroke tool="highlighter" color="#00ff007f" width="9" fill="60" capStyle="butt">292.676 78 397.442 78</stroke>