Story

I just want a PDF that looks right

My fundraising tool for non-profits keeps producing PDFs that don't match the slides. Tomorrow I'm trying something different.

· 2 min read

I'm building Kamali, a tool for non-profits: find foundations, keep track of donors, write the reports funders ask for. A lot of that work ends up in a PowerPoint deck or a Word document, and at some point it has to become a PDF that goes to someone important.

Right now I do what everyone does. The files go through LibreOffice on a server and come back as PDFs.

The PDFs are wrong

Not broken. Just wrong in a hundred small ways. Text a little too wide, so a title wraps onto a second line. A shape slightly off. A chart in different colours. A slide that looks great in PowerPoint looks cheap in the PDF.

Last month I wrote this down in my notes:

Is there a more accurate PDF export than LibreOffice? It's not rendering properly.

And then a second question, which is really the same one:

What editable format gives an accurate PDF export, where both render exactly the same?

As far as I can tell, there isn't one. The format belongs to Office, and the only thing that draws it exactly right is Office itself. You can't run Office in a browser or on a Linux server.

Two drawings of the same file

What bothers me most isn't the PDF on its own. It's that the app has two different ideas of what a deck looks like. The editor shows one thing. The PDF, made by another program, shows something else. The preview in the template list shows a deck the app will never actually produce, and you can't see the difference unless you open both side by side.

Once you notice that, you can't stop seeing it. If the product draws a slide, the PDF should be that same drawing, not a second opinion from another engine.

Tomorrow

The plan is modest. Show the deck properly in the browser, and stop sending people PDFs that don't match what they saw. Just get the common cases right.

First experiment: there's a build of LibreOffice that runs inside the browser. If the engine is the problem, maybe at least the editor and the PDF can share one engine. I'll write up how it goes.