PDF Bookmark Editor (chrome, firefox, edge)
https://mrfragger.github.io/pdf-bookmark-editor
- Add / Edit bookmarks for a PDF
- add chapter, section or subsection bookmarks
- select text in pdf to use for bookmark title
- load existing bookmarks
- import or export bookmarks to a text file
- grayscale (default), dark and light modes
- zoom in/out and zooms to page width by default
- Titlelize chapter titles Aa
- merge PDFS retaining existing bookmarks
- rearrange order of PDFs to merge
- rotate, delete pages
- select all, none, even, odd, invert
- select ranges 22-34, 38, 42, 44-56
- visually drag page thumbnails to reorder
- undo multiple times
- minisearch multi term search, bm25
- ranking score search results
- since most PDF viewers only allow searching on one term
- PWA (progressive web app), installs offline
- Librewolf/Firefox bookmark and it'll be cached
There should be a free PDF editor for bookmarks without ads, freemium or a subscription. I looked but never could find one. Just a few python command line ones that work great for advanced users. This app is all local. No cdn (content delivery networks) either just 5 files loaded ~4MB total (index.html 120KB, pdf.worker.min.js 1.1MB, pdf-lib.min.js 525KB, pdf.min.js 320KB, index.min.js 19KB)
For annotation, adding text, highlighting, adding a signature just open PDF in Firefox / Librewolf.
Doesn't do vertical position (jumping to exact location of text in a page) within PDFs (as that requires pymupdf and python) but allows one to easily modify bookmarks for pages. Crop function isn't practical in this app.
Click Compress icon, to copy to terminal, open terminal where pdf is located then paste command to compress PDF Use Ghostscript (free AGPL) for PDF compression: Windows
brew install gs sudo apt install gs choco install gs
# /screen smallest size (72 dpi, lower quality) or /ebook balance size
# and quality (150 dpi) or /printer high quality (300 dpi)
gs -sDEVICE=pdfwrite -dPDFSETTINGS=/screen -dNOPAUSE -dBATCH -sOutputFile=compressed.pdf input.pdf
# -dSubsetFonts=true add this which removes unused glpyhs
# in fonts to save even more file size
gs -sDEVICE=pdfwrite -dSubsetFonts=true -dPDFSETTINGS=/screen -dNOPAUSE -dBATCH -sOutputFile=compressed.pdf input.pdf

