Show HN: Free, in-browser PDF editor
495 philjohnson 107 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!
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'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!
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
Open source isn't just about the source code being available (and when making web apps, there is often a compile step which makes the browser facing code not source code), but also about the license under which it is available.
It is in every sense of the word technically not open source.
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.
> trust
That's exactly right. The main attractiveness of your tool comes from the "never leaves your browser", insinuating that other similar services do send your data to a server and then who-knows has access to your sensitive data. I really like that angle. But we don't know you. We can use some tools to check that nothing is transmitted today. But who knows about the future? Maybe you change your mind? Maybe once your service becomes popular you sell it for $$$ and the new owner silently pushes things to a server "totally securely, we promise"? Or is even malicious?
> anyone can see the html/javascript
Seeing minified javascript is not the same as open source. Nobody would claim that the google doc UI is "open source".
If you open source this and it turns out as great as it seems then it can make you world famous. If you keep it closed then it will probably disappear in the vast sea of similar sevices, server-based or not (since avg Joe doesn't know the difference and doesn't care). It's your choice to make.
> Though, maybe I'll add something where you can pay to get the desktop version
Ah, thanks for your honesty here. An angle describing your project in a more bad-faith way could now be that you run beta-testing of your proprietay software through this "free" service and intend to turn it into a closed pay product once the public testing has fleshed out the main issues. That's obviously something you are free to do instead of an open source product emphasizing freedom.
> trust All fair points that you're making. I see no reason I would change my mind to send PDFs to the server, but I understand your concerns. If I'm reading in between the lines of what you're saying, that the way to alleviate these concerns is to make it open source?
I think that's a compelling argument, but to play devil's advocate if most people realistically working with PDFs aren't developers and thus wouldn't go to GitHub to host it themselves, then what would change for them to have a self-hostable option? If I released a desktop version, might the average person would see that as "private" and have any privacy concerns relieved, whether it was open sourced or not?
There is always a degree of trust you put in any company's software you use, and it's up to the company to be good stewards of that trust. If they break it, it's always bad for business anyways. But there is a point that if it was open source, those who have the desire to do so can continue using it without any concerns, which is fair.
> anyone can see the html/javascript Yes minified javascript is not the same as open source, but mine is not minified. Plain HTML, CSS and vanilla JS. So given that and since all the editing happens in the browser, the entire source code is inspectable for anyone who wants to see.
Given that the average person editing PDFs is not tech savvy, and as you said they don't really know the difference between software options, then given that what do you see as the utility of open-sourcing, from a business or even public good perspective? Genuine question.
> Though, maybe I'll add something where you can pay to get the desktop version I can see why someone would think that, but really at this point I'm figuring out what/if there is a monetization method here, and I'm not set on a particular path. I don't have any agenda to just make it free then close it off. That'd probably be a bad business decision anyways. I'm not sure if desktop is something to charge for, or if desktop and the whole thing is better to be free and open-source along with premium features that people can optionally pay for that are outside the core scope. I'm still thinking through it.
Ideally, I'll make all core features open-source while there are also some extra features people are willing to pay for. I'm just still wrestling with even just from the public good perspective, for the vast majority of people that won't host it themselves how would they benefit from open-source versus the core features just being free?
Curious if you have any response to what I've laid out here.
Appreciate your thoughtfulness!! You've given me a lot to think about.
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.
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
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).
Console. Chrome based browser. Uncaught (in promise) wc: Input document to `PDFDocument.load` is encrypted. You can use `PDFDocument.load(..., { ignoreEncryption: true })` if you wish to load the document anyways.
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.
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
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.
Where is the hero who will rise to the challenge? The one who will finally rescue thousands of office and admin workers from the endless misery of XFA hell—a nightmare Adobe created and then abandoned in a pit of form chaos years ago.
Seriously, we need you. The world needs you. Be the one who ends the suffering. Be the legend.
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?