Show HN: Free, in-browser PDF editor
450 philjohnson 99 5/3/2025, 6:15:45 PM breezepdf.com ↗
Add text, input boxes, pictures, signatures, delete pages, merge PDFs and password protect them. All happening in the browser, 100% free and no sign-up.
On a similar note, a downloadable (single-file HTML or so, although these days some kind of HTTP service is a practical necessity) version would be nice to have. Low pri even from my perspective; it isn't that I spend a lot of time in places with no cell signal, so much as just that tethering on an a la carte plan gets out of hand pretty quick, since applications aren't at all required to honor or even notice the existence of the "data saver" option.
This is really neat! Thanks for posting it, I've bookmarked it for later use in the "just need a quick tweak" kind of case. I'll look forward to seeing how it develops!
I'll take a look at improving rendering embedded font support. And that's a neat idea to be able to download it for offline, I'll give some thought to that. Appreciate your feedback!
Modern processors can handle the relevant conversion math without really waking from sleep, which will no doubt make it more frustrating when some W3C third party resource security model WG fistfight from 2013 makes it impossible to both construct and use a webfont on the client. (There may be some hideous blob URL magic, but those are length constrained so you could up in N subset nonce fonts bucketing M custom glyphs from the source document, with a hideously complex fifty-case rewrite for all the p90 ways of mapping fonts in PDF (or is that 90 cases and p50?) to render the document in the editor. And then have to handle the actual editing cases, like what happens when your subset nonce font of a subset embedded font doesn't map any character to the keycode you just saw, and you want to try to give the user something with metrics sorta matching what they wanted instead of Helvetica or Times New Roman out of a naïvely constructed fontset.
I may have worked with PDF in browsers one time too many, before. But the idea of using WASM to smuggle real tools into this impoverished environment actually makes a lot of sense to me...
I think I see you're using pdf-lib and jspdf - both great libraries, and I'm using both, but:
(1) Have you seen the recent WASM compilation of MuPDF? I am also using it for some functions and find it really excellent with accessible APIs and highly functional. Worth an try!
(2) We chose different forks of the (unmaintained) pdf-lib - is there a reason you went with `pdf-lib-plus-encrypt`? I chose the cantoo fork, which seemed well-maintained to me - but I didn't research many others so would be interested to know if there is a good reason.
Since a lot of the basic functionality I've added so far is also covered by more permissible packages like the ones you mentioned, I've started out just using those. But thanks for bringing that up, I'll revisit using MuPDF for redaction and other features
(2) I went with pdf-lib-plus-encrypt because the original pdf-lib doesn't have functionality for password-protecting PDFs, and since pdf-lib-plus-encrypt does, I used it so I could have that feature
On the first part, since everything happens in the browser, anyone can see the html/javascript and inspect the Network tab and see that no network requests are made that send their PDF anywhere.
And on the second part, I think most people who use the software aren't developers and won't want to modify it, and I don't particularly see a use case for integrating this software into another one, outside maybe an internal corporate scenario.
Though, maybe I'll add something where you can pay to get the desktop version, similar to what Sejda does.
docker run -d -p 8080:8080 -e DOCKER_ENABLE_SECURITY=false --name stirling-pdf frooodle/s-pdf:latest
Lots of features, OP you should definitely check this out
Try pdfmini now:
https://den-run-ai.github.io/pdfmini/
Source code for pdfmini:
https://github.com/den-run-ai/pdfmini
Here is my workflow. Have a bunch of PDFs and images I need to combine.
I go to tools.PDF24.org, Merge pdfs, then compress them, then more compress them because of size limits, then add or remove pages. Then add page numbers.
These are multiple steps.
Could we have a way of defining these terms at start, either textual or no-code-like or something where we could define stuff like
Take input, merge > compress with greyscale, Max size 1MB, add page numbers on bottom right
Or
Convert input to jpg with image size 8cm by 8cm
I know many people who simply fail at such stuff. They just throw their hands up in defeat.
Not saying we should have llms do the job but if we could have multiple actions so that people could tell the software what they have in mind.
People dont just compress PDFs, often merge and then compress.
I recently say pdfux.com but it is not as featureful as PDF24 but PDF24 crashes a lot.
# Convert images to PDF
img2pdf *.jpg -o images.pdf
# Merge PDFs
pdfunite file1.pdf file2.pdf images.pdf merged.pdf
# Compress
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook \ -dNOPAUSE -dQUIET -dBATCH -sOutputFile=compressed.pdf merged.pdf
# Remove unwanted pages (e.g., page 3)
pdftk compressed.pdf cat 1-2 4-end output final.pdf
# Add page numbers
pdfjam final.pdf --outfile final_numbered.pdf --pagecommand '{}' --landscape
I used scantailor go scan a book. That gave out tif files.
So I built a script to convert them to jpg, then merge into PDF. Then OCR and add the text layer on PDF. Then compress.
I know this for a niche automation..... web OTOH where normies reside and are scared by terminal, it wont work.
Been using pdftk for years now but im only person who can use it in my office.
For people who want a non web-based alternative, these days I use Xournal++ (https://xournalpp.github.io/) to do that type of edition locally.
What I am still looking for is a good way to clean scanned PDFs: split double pages, clean up text and make sure it is in lack and white, clean deformations and margin, cut and maybe rotate pages, compress the end result.
For the other issues, I haven’t found any single good tool, but I’ve stitched together things like unpaper, ghostscript and deskew ( https://github.com/galfar/deskew ).
Also, if you need OCR, hocr-tools and Google’s Document AI ocr API have worked really well for me (I tried Gemini, but you run into issues with big documents).
Hooking up a good PDF editor for output is hard, but this is a nice solution.
Which features (if any) that if added would you be willing to pay for?
I'm sure some might like to modify it, though I think probably most people aren't developers and wouldn't want to.
There's no VCs or anything behind this, just me, and my costs are just a VPS to render the page, and all processing happens on the local device. So I have no reason to change any currently free features to ever not be free.
Also for text, different fonts is a necessary requirement (and bolding, italics, underline, etc).
Also, it seems like I can't edit text boxes after creating them... I can't even tell if I've selected the text box (an outline would be nice).
Also the confirm modal for deleting a page is realllly annoying. You should just have it automatically delete the page and create an undo feature. (Basically store the original PDF, and store all the "actions" a user makes in an array, and then undo/redo the actions to the original pdf).
Also the arrow to close the page overview on the left side of the screen is very unintuitive. Why does the entire page shift to the left? The only reason I'd use that feature is to see my centered page more clearly. On this topic, a zoom feature is super important too.
Overall, the concept of a privacy-based PDF editor sounds really cool! Just note that for users to actually make a serious switch to this, you must at least match 1/4 of the quality of other PDF services like ilovepdf.com or smallpdf.com.
Good luck!
Agree with you regarding fonts, bolding underlining etc. and having instant page deletion with undo/redo. Will definitely be adding soon.
Fixed the arrow closing the preview pane so that the page stays centered.
I plan on adding a lot more features so that it's on par with ilovepdf.com and smallpdf.com. The libraries I'm already using support many of the features they have, so it'll be easy to add them while keeping everything fully in the browser.
Thanks for the feedback!
Fwiw, I do see the issue with being unable to scroll down across both Safari and Chrome.
Small request: When I have a document open, ask to prevent accidentally closing the tab.
Large request: Resizing pictures and signatures.
Ask to prevent accidentally closing the tab is a great suggestion, I just added it!
Resizing pictures and signatures is definitely something I'll add very soon.
Pen input (Apple Pencil) is quite choppy, because browsers tend to coalesce multiple pen events together, effectively reducing the pen's polling rate. You need to use PointerEvent.getCoalescedEvents: https://developer.mozilla.org/en-US/docs/Web/API/PointerEven.... Pen pressure support would also make signatures look a lot better.
Would also be nice to be able to draw anywhere you want. Right now I'm using Xournal++ for pdf annotation but its performance is lacking and I'm always looking for alternatives.
I had a period when I worked with lots of documents. I could only find one fairly decent PDF editor which deserves to be called that way. I could use it to open any PDF and delete an existing element, or change text in an existing field. Sometimes things behaved funny, for example a text field can have each letter in a separate block, but I assume the tool did what it could within reasonable effort. It worked fine for me overall.
You can edit text streams, which needs a decompress/recompress, messes up all the object reference offsets for the entire file, potentially adds or removes characters to the subset font, which may not be referenced by the glyphs but a number instead to intentionally break copy/paste/scrape (e.g. 'a' is not 'a' in the text stream, but a random number), etc. Assuming the text is even marked up as strings, and not individually positioned characters with nested offset co-ordinate scaling to further muddy the waters.
The fact so many people want to edit PDFs probably indicates a design flaw on Adobe's side, when considering what customers really want.
If the PDF hasn't been made accessible, you have to do a lot of inferencing based on the layout about how things are grouped and how they should flow if you want to be able to make meaningful edits. Not impossible (Acrobat does it), but very challenging.
It's part of the legacy of PDF as a format for presentation and print jobs, rather than typesetting.
So if you had PDF with "Hello World" on it, you could feasibly change it to "Hello Hello", but wouldn't be able to change it to "Goodbye World" (as the glyphs for "G", "b", "y", and "e" are not included in the PDF)
Sure, you could do a bit of detective work to figure out which font it was from the glyphs or something and lookup and insert new glyphs into the PDF, but I can't imagine a generic PDF editor being capable of doing this for you.
Some editors get around this but just straight up switching the font(s) for the whole PDF, so they'll look different after saving.
There isn't anything off the shelf that enables editing existing text in the browser, but it's something I'll build from scratch. So you'll be able to edit existing PDF text without compromising privacy.
there aren't existing packages that can edit existing PDF text in the browser, but I'll do it myself sometime soon
When downloading the PDF, the text block is not wrapped, so it doesn't match the way it looks in the editor. Tested in Firefox (but it's the same in Chromium).
Nice work on the interface and the offline & local way it works is very welcome!
And thanks!
As much as I'd like it, we all know it can't remain "100% free and no sign-up". What's your plan to avoid enshitification?
One way it'll avoid enshitification is that I have no VCs or anything like that, it's just me. So I only answer to actual users.
My hunch is that while PDF editing is something people commonly do, most people probably don't want to pay for it, at least for basic features. My plan is to add Google Adsense, but in a way that is non-obstructive/intrusive.
Depending on feedback, I might add a paid plan for much more advanced features if there's demand. But all the features you mentioned that are missing, as well as all other basic features, will always remain free. Since all the editing happens in the browser, it's a win-win for privacy and lower resource utilization. I just have to render the webpage. It runs on a low cost VPS, so it costs me almost nothing to keep this software running. Given that, there's no current or future costs that would give any reason to remove free features.
> My plan is to add Google Adsense, but in a way that is non-obstructive/intrusive.
Please do not do Google ads.
Not only that this ruins the privacy of the users and further entrances Google's reach, but it further leads to enshitification which is what we don't want.
Perhaps maybe a small tiny sponsor banner may be better.
You can open PDF in LibreOffice Writer, just make sure to select "PDF - Portable Document Format (writer)" in the file selection dialog. This is very important, if you don't do that, the file will be opened in LibreOffice Draw instead of Writer.
Thanks for this! I'll definitely add it to my bookmarks
And yet filling out a pdf and signing it with a certificate (aka the bog standard procedure for much of modern bureaucracy) is still too much to ask for any pdf software on linux. It just doesn't exist. How?
PDFs are final produce of a rendering process. They don't have nice text or image elements you can move around as a unit. The rendering process explodes the source material into thousands of unconnected objects. Fonts are separated into their glyphs so you need to have legal access to a bunch of very expensive fonts to just to write the correct heuristics. You need good algorithms to reverse the layout and even reverse engineer entire documents to rearrange text content. It is stupidly expensive to develop in and hire for this niche. So nobody will release their very expensive heuristics in the wild.
Btw, closed-source alternatives to Acrobat exist. I like Tracker Software's editors a lot. There is also Foxit and Master PDF. The latter two work under Linux but their UI can be janky since they ship their own UI libraries.
The real obstacle to digitally signing is bad support for Linux by the card reader vendors, as usual.
[1] https://code-industry.net/masterpdfeditor/
"It works on Acrobat" was something we got told a lot from clients sending us PDFs that were broken according to the official spec - we just had to deal with it.
https://code-industry.net/masterpdfeditor-help/certificate-m...
Is it somehow filtering out referrals from this site?
Whenever I import PDF's into drawing programs, add something, and then export, something always seems to get messed up.
Whether it's font glyphs, or font spacing, or something to do with layer ordering.
Of course, there is no guarantee that this will remain... regularly checking network activity before uploading a private document isn't too hard
Isn't a browser for interfacing to http?