Project · apertasuite.com
Aperta Suite
Open any file exactly as it was made, in a browser tab or inside an app, without the program that made it and without uploading it anywhere.
It started because Kamali needed to show its users the Word and PowerPoint files they work with every day, and nothing I could put in a web page showed them the way Office does. So I began drawing them myself, and kept going: it now opens about 80 formats in 12 families, and edits most of them.
- OfficeWord, PowerPoint, Excel, also from 1997–2003, plus RTF, Pages, Keynote, Numbers
- PDFread, fill, sign, redact, retype
- Video and audioMKV with cinema sound and subtitles, MP4, MOV, FLAC and more, with an editor
- PhotosiPhone HEIC, camera raws, Photoshop, with raw development and layers
- CADDXF and DWG, with a 2D drawing editor
- InDesignIDML and INDD layouts
- E-books and comicsEPUB, Kindle, FB2, CBZ
- AnimationsLottie, dotLottie, Telegram stickers, with a timeline
- Archives and emailZIP, RAR, 7z, Outlook messages
- Text and dataMarkdown, CSV, JSON, notebooks, SQLite, code
It runs inside both of my products: in Kamali, where an organisation's reports and letters are written and checked, and in Wildkit, where anything a friend sends you opens right in the conversation, even with no signal.
Office, the deep end
Office files are where the rules are hardest and least written down, so that is where I measure. Every change is scored on 3,476 real documents against the PDFs Office itself makes. The first previews in July were made by LibreOffice; my own renderer took over at the end of August.
Fidelity, from the start
How close to Office
- All formats 90.5
- Word 88.0
- PowerPoint 93.1
- Excel 90.3
Writing
What I found along the way
Microsoft's own spec for 3D lighting is turned 90 degrees
Office's specification lists exactly where its 3D lights point. Draw them as written and the highlights land in the wrong place. Turn them a quarter turn and everything matches.
Thousands of real files, one score
How I measure whether the renderer really looks like Office. Office's own PDFs as the reference, a Windows PC doing the exports, and a score for every file. Tonight it's at 89.3.
The PDF should be the page you're looking at
For months every PDF in the product came from a second program. This week the PDF finally prints what the screen draws.
Measuring the camera behind Office's 3D pie charts
Office never says how it draws a 3D pie. But its PDFs contain the picture, and a picture of a cylinder gives away the camera that took it.
PowerPoint fits SmartArt by guessing, and you can see it in the numbers
SmartArt doesn't calculate the size that fits. It searches for it, halving the gap each step, and stops when it's close enough. That leaves fingerprints.
PowerPoint kerns SmartArt text with a 1990s table
Getting SmartArt text to fit like it does in PowerPoint came down to one rule I never found written anywhere. Kerning starts at 12 pt, and it uses the font's old kern table.
I wrote a JPEG XR codec for one PowerPoint feature
PowerPoint quietly keeps the original of every edited picture in a format almost nothing reads. So yesterday I finished a decoder and an encoder in plain JavaScript.
My browser tab opens almost anything now
Once slides worked without a server, I got curious about what else a tab can open by itself. Old Word files, iPhone photos, mail, ebooks, archives.
Drawing a document in fonts you don't have
Most Office documents ask for fonts a browser doesn't have and can't legally ship. This week I found a way to stand in for them without the text reflowing.
There's a whole PDF hidden inside this Word for Mac picture
Pasted charts and logos in Office files are often EMF, a Windows format no browser can draw. The ones from Word for Mac carry a surprise.
PowerPoint is my answer key now
With LibreOffice out of the picture I need a new reference. PowerPoint's own PDF export states almost everything it does, if you read it closely.
I put LibreOffice in the browser, and by the evening it was gone
Yesterday a full office suite booted in a browser tab. A few hours later my own JavaScript drew the same slides, with zero differences, 275 times faster.
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.