Show HN: Free, in-browser PDF editor

413 philjohnson 87 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.

Comments (87)

throwanem · 7h ago
I tossed a legal document at it which was recently of passing interest to me, and it looks like embedded fonts still need some work. I'm not inclined to share a test case from what I have, which relates to a change of name and in any case was not really prepared by anyone especially competent when it comes to PDFs and their content; I tested with the first, facially void, version I was given. But it is possible I'll find more use for this tool, and if a shareable test case does come along then I'll do so. (And heaven knows with this document format, embedded fonts are a total nightmare always, even somehow in programmatic authoring. I'm not criticizing!)

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!

philjohnson · 4h ago
Thank you!

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!

wffurr · 7h ago
Fonts on the web are super hard. There’s hardly any useful browser APIs for the kind of typesetting you need for PDFs: itemization, character bounding boxes, font file sub setting, etc. To solve or properly, you need to include a lot of code, e.g. all of harfbuzz compiled to wasm.
throwanem · 2h ago
Well, that's the thing. Web fonts are hard. PDF fonts are super hard. Both at once is...actually maybe not hideous these days. Oh, I would not wish the task of devising such an algorithm, but the subset of vector fonts supported in PDF and that in browsers aren't totally disjoint, I think.

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...

speerer · 9h ago
Nice work. I've been building something lately to manipulate PDFs in the browser for privacy, although it's quite a different use case.

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.

philjohnson · 8h ago
(1) Yes, I am very familiar with the WASM compilation of MuPDF. It's got a lot of great features. I actually built another product pdfredactoronline.com that does redaction fully in the browser using the MuPDF WASM compilation. The reason I don't use it in BreezePDF is MuPDF has an APGL license which requires open-sourcing any code that uses their software. Which, I guess technically anything fully browser based is essentially open sourced :) so perhaps I could use it here.

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

speerer · 7h ago
Thanks for the insight. Yes, the AGPL isn't a problem for me - I didn't check your licence as I could just view source :)
sroussey · 5h ago
Is your code available?
what · 4h ago
I would assume not based on their objection to AGPL libraries.
philjohnson · 4h ago
not yet available as open source. Open-source has two main purposes I think: trust, and customizing/integrating it into other products.

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.

denfromufa · 1h ago
My wife hit a wall trying to upload a hefty PDF - every “shrink” tool we tried barely compressed the size, and some even made it larger! Frustrated by the state of PDF compressors (looking at you, Adobe), I turned to LLMs - Claude, Deepseek, and Gemini came up short, but OpenAI’s o4-mini saved the day with a perfect solution. That inspired me to build pdfmini: a tiny, open‑source, client‑side HTML app that crushes PDF sizes right in your browser!!! No installs, no fees, zero privacy worries - all your data stays on your machine.

Try pdfmini now:

https://den-run-ai.github.io/pdfmini/

Source code for pdfmini:

https://github.com/den-run-ai/pdfmini

2Gkashmiri · 49m ago
This gave me an idea. You seem to be the right person to talk to.

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.

kevinlinxc · 7h ago
I use stirling-pdf for this, ran locally with

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

theturtletalks · 6h ago
Stirling is a life saver, they have a web UI too: https://stirlingpdf.io
tbarbe · 9h ago
I created a similar offline tool during covid because I didn't want to upload sensitive data to random servers, it's open source if that can be useful to someone else : https://timothebarbe.github.io/pdfModer (Im not a front end dev, the UI is not very good)
ugh123 · 48m ago
Is this open source? I think the world could use a good free and open 'utility' app for PDFs. Its hard to do digital business these days without even moderate features needed in PDF editing without paying Adobe or non-free online services - JUST TO EDIT A DOCUMENT.
nestorD · 8h ago
Nice! I will give it a try later today.

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.

fiddlerwoaroof · 8h ago
For splitting double pages, this is the best tool I’ve seen: https://github.com/mbaeuerle/Briss-2.0

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).

UE2020 · 2h ago
Some suggestions:

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.

cbracketdash · 9h ago
Scrolling is broken. Also for modals, it'd be nice to be able to click anywhere on the screen to close it (or pressing Esc) rather than just pressing "cancel".

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!

philjohnson · 8h ago
Scrolling is now fixed! And just updated so that if you click outside modal it closes. Working on update now so you can edit text you've already added.

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!

jbarrow · 9h ago
Wonderful! Inserted form-fields show up in Preview and Acrobat, which is not a trivial task. I run a little AI-powered tool that automatically figures out where form fields should go (https://detect.penpusher.app) and robustly adding form fields to the PDF was the hardest part.

Fwiw, I do see the issue with being unable to scroll down across both Safari and Chrome.

philjohnson · 9h ago
Thanks! I fixed the scrolling issue
nizarmah · 9h ago
This is really nice! Kudos.

Small request: When I have a document open, ask to prevent accidentally closing the tab.

Large request: Resizing pictures and signatures.

philjohnson · 7h ago
Thanks!

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.

behnamoh · 9h ago
doesn't "edit" PDF text, just adds more.
wild_pointer · 9h ago
That's the problem with all the pdf editors available out there. I guess adding stuff is much easier than editing existing stuff which you didn't add, and can be laid out in a gazillion ways, because PDF is a format for viewing and printing, not for editing.

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.

hnick · 4h ago
PDF was basically created as a final presentation format, it's essentially append-only by design, which is why you hear so often of redactions just marking up a white/black box over text.

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.

jbarrow · 9h ago
Editing text in PDFs is _really_ hard compared to other document formats because most PDFs don't really encode the "physics" of the document. I.e. there isn't a notion of a "text block with word wrapping," it's more "glyphs inserted at location X with font Y."

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.

otsukare · 6h ago
Yes, and alongside formatting challenges, PDFs commonly only include the glyphs from the font that are actually used in the document.

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.

benatkin · 9h ago
It's still what a PDF editor, as it says in the title, would do. With a quick Google I found one that I hadn't heard about before, and it let me edit some text and save it for free.
TechDebtDevin · 9h ago
Ask yourself, why would someone spend money on bandwidth for me to download something for free...
philjohnson · 8h ago
PDF editor is used as a broadly encompassing term. Yes, other tools can edit existing text, but they upload your PDF to their servers, so it's not private if that's something you care about.

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.

wild_pointer · 5h ago
This can if I remember correctly (can't check now), but it's a POC and not a finished product https://github.com/ShizukuIchi/pdf-editor
layer8 · 8h ago
PDF is really not a format designed for editing, of text content in particular. It’s only possible in limited circumstances.
philjohnson · 9h ago
yes, that's why the description says "add text" not edit :)

there aren't existing packages that can edit existing PDF text in the browser, but I'll do it myself sometime soon

kwanbix · 9h ago
The website says: Edit PDFs Freely & Privately, Right in Your Browser.
matsemann · 9h ago
What I miss in free alternatives is the ability to redact. Not just by placing a black bar above, but such that the text also leaves the PDF. Shouldn't even need to reflow other text as mentioned in another comment, as things would otherwise stay the same.
philjohnson · 9h ago
check out pdfredactoronline.com I also built that. I had to make it separate for now as it's using MuPDF JS library which has APGL licensing, but I might add it in here if it seems I can add it while still complying.
matsemann · 6h ago
Will check it out, thanks!
hakcermani · 3h ago
Really neat. i tried a couple and it worked fine for my use case which is mainly adding a signature .. Any chance the signature size can be adjusted by dragging a corner ?
kzrdude · 8h ago
Add a text block - it adds a block that wraps (it's a bit narrow, would like to change its size).

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!

philjohnson · 7h ago
Hm, mind describing more about how it wraps? Assuming you're referring to text you added? I haven't encountered that myself, but will definitely try and fix.

And thanks!

kzrdude · 6h ago
Just that the text block after entering four-five words starts on a new line, it's like regular soft wrapping, looks like I get a 4cm wide text box to write into. Which is fine as a feature, only bug is the two items mentioned (can't resize it and doesn't show up in the pdf with the same width of the text box).
jdjdjdjdjd · 9h ago
Seems broken to me. Uploaded a pdf but I cant scroll down to see the bottom of the pdf, its just stuck... tried with FF and safari, same deal.
philjohnson · 9h ago
Fixed now!
a1371 · 9h ago
I like it! It has most of the features I need in a PDF doc and nothing of the bloat. The only features missing for me are: callout text comments, redact text, and flatten PDF. It's snappy and pretty easy to understand. Good job

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?

philjohnson · 7h ago
Thanks! Text comments, redaction and flattening are definitely features I'll add.

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.

colesantiago · 7h ago
> 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 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.

philjohnson · 6h ago
Fair point. I added a contact email in the upper right for feedback and sponsorship. Let's see what happens
Labo333 · 8h ago
Nice! Recently I had the need for pdf censoring, aka not adding black rectangles but actually removing the content underneath and I still haven't found a suitable tool. Any recommendation? Or even python library to do it?
ValdikSS · 5h ago
LibreOffice.

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.

philjohnson · 7h ago
I developed another tool pdfredactoronline.com that does this. Full redaction/removal of content, not just blacking out text. I didn't include it in this tool for now due to the APGL license of the library that enables the redaction, but since something fully in the browser is kinda open source already, I'll see if I can comply with the license while including it in BreezePDF
mamonoleechi · 8h ago
you can do it easily with Inkscape which supports the pdf format
fortran77 · 8h ago
Do you want the black rectangle and the content removed? There are "redaction" tools. https://smallpdf.com/redact-pdf
andrecarini · 8h ago
Honestly, your best bet for securely erasing data from a PDF is by adding the black bars, printing it and then scanning the print.
neversettles · 4h ago
Is anyone building 'Cursor for editing PDFs on the web'?
contact9879 · 7h ago
I've been using a tangential but still pdf tool, pdfux.com since it was posted here on hn

Thanks for this! I'll definitely add it to my bookmarks

VisualByte · 8h ago
Where is the repo? I do not trust the privacy...
philjohnson · 8h ago
I might post the repo, but if you don't trust it you can just open the Network inspection tab and you'll see that zero network requests are made when you edit a PDF
TheJCDenton · 6h ago
Very nice, thank you !
yair99dd · 4h ago
Inkscape!
lutusp · 4h ago
A voice in the wilderness, but weren't PDFs originally meant to be read-only? Yes, nearly everyone now has a PDF editor, but this seems to undermine the original intent behind the format. As things stand, we may need to invent a portable document format that remains read-only, that fills the purpose PDF was meant to fill.
ghostly_s · 8h ago
What reason do I have to believe this will still exist in 3 months when I need it next?
philjohnson · 8h ago
There's no VC backing behind this, it's just me. And it's actually a win-win to have all the PDF editing happen in the browser. It both offloads resource usage to a local computer and makes it private. All I have to do is render the page and that's it. Given that, it costs me almost nothing to keep it running, so there's no reason to take it down.
moffkalast · 9h ago
You'd think at this point there would be a dozen solid competitors to Adobe Acrobat. You'd really fuckin think so.

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?

okanat · 5h ago
It is similar to the lack of a perfect MS Office with full VBA support, or the lack of well-designed CAD software for 21st century or the lack of industry-grade photography software someone can earn a living from, or the lack of reverse-engineering software that has the exact integration and full capabilities of IDA. It is sufficiently hard to get it right, so people who are smart and determined enough to solve PDF editing problem are asking for a return on their investment.

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.

Propelloni · 8h ago
Gnome's Papers and, of course, KDE's Okular sign PDF without a hassle. If you need to edit PDFs, too, MasterPDF [1] is a solid choice. Not quite PDF X-Change in power or Acrobat Pro in looks it is sufficient for daily tasks.

The real obstacle to digitally signing is bad support for Linux by the card reader vendors, as usual.

[1] https://code-industry.net/masterpdfeditor/

layer8 · 8h ago
For similar reasons that no fully compatible MS Word clone exists: very high complexity of the format, underspecified format details, and undocumented implementation algorithms.
hnick · 4h ago
Even if the format is understood, it's also very much a case of Acrobat handling extremely badly formed PDFs instead of erroring out if it were strictly adhering. If you've ever seen a save prompt when making no changes, that happened.

"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.

sgc · 8h ago
The best I have found that does this is Master PDF Editor for Linux. Unfortunately not free or open source, but it is good.

https://code-industry.net/masterpdfeditor-help/certificate-m...

JLook · 9h ago
I use Scribus to edit PDfs https://scribus.net
speerer · 9h ago
Weird: Your link is broken for me, but typing in exactly the same text to the address bar resolves perfectly.

Is it somehow filtering out referrals from this site?

sgc · 8h ago
Their link redirected to www.scribus.net for me, perhaps somebody saw this and fixed the config?
cess11 · 9h ago
Looks like they have a cert for https://*.scribus.net, but not for https://scribus.net.
cbracketdash · 9h ago
I use LibreOffice Draw
crazygringo · 9h ago
Does that do a perfectly accurate import?

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.

okanat · 5h ago
It doesn't except very trivial things.
tap-snap-or-nap · 6h ago
Why did I never think of this? Thanks!
philjohnson · 8h ago
Right now the signatures are digital ink, but I plan on adding signatures with certificates so it's more official.
VisualByte · 8h ago
I do not trust the privacy here...
maxloh · 8h ago
You can monitor Network requests the application made with DevTools.
johnea · 8h ago
Why would you want functionality like this to be in a browser?

Isn't a browser for interfacing to http?

layer8 · 8h ago
The functionality isn’t actually in the browser, it’s in the files downloaded via HTTP.
philjohnson · 8h ago
It's accessible via a website so that you don't have to download anything, and everything running in your browser means the PDF never leaves your device, so it's 100% private.
bigstrat2003 · 5h ago
Not having to download anything is not a plus. Much better to make an actual application that you download, and which never touches someone else's server.
vntok · 8h ago
This tool is hosted on a website, and you access that website like all other websites, using a browser interfacing with HTTP.