<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel>
<title>Monirith Khieu</title><link>https://khieu.ch/</link><description>Building a pixel-faithful Office renderer for the web, and writing down what Office really does.</description><language>en</language>
<atom:link href="https://khieu.ch/rss.xml" rel="self" type="application/rss+xml"/>
<item><title>Kamali Suite against ONLYOFFICE and Apryse, with the same fonts</title><link>https://khieu.ch/writing/against-the-others/</link><guid>https://khieu.ch/writing/against-the-others/</guid><pubDate>Sat, 07 Nov 2026 12:00:00 GMT</pubDate><description>Comparing renderers only means something when they draw with the same fonts. Here's what happened when I gave them all exactly the same files.</description></item>
<item><title>Microsoft's own spec for 3-D lighting is turned 90 degrees</title><link>https://khieu.ch/writing/the-spec-is-rotated/</link><guid>https://khieu.ch/writing/the-spec-is-rotated/</guid><pubDate>Sat, 07 Nov 2026 12:00:00 GMT</pubDate><description>Office's specification lists exactly where its 3-D lights point. Draw them as written and the highlights land in the wrong place. Turn them a quarter turn and everything matches.</description></item>
<item><title>Thousands of real files, one score</title><link>https://khieu.ch/writing/thousands-of-files-one-score/</link><guid>https://khieu.ch/writing/thousands-of-files-one-score/</guid><pubDate>Fri, 06 Nov 2026 12:00:00 GMT</pubDate><description>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.</description></item>
<item><title>The PDF should be the page you're looking at</title><link>https://khieu.ch/writing/the-pdf-is-the-page/</link><guid>https://khieu.ch/writing/the-pdf-is-the-page/</guid><pubDate>Fri, 06 Nov 2026 12:00:00 GMT</pubDate><description>For months every PDF in the product came from a second program. This week the PDF finally prints what the screen draws.</description></item>
<item><title>Measuring the camera behind Office's 3-D pie charts</title><link>https://khieu.ch/writing/the-camera-behind-3d-pies/</link><guid>https://khieu.ch/writing/the-camera-behind-3d-pies/</guid><pubDate>Wed, 04 Nov 2026 12:00:00 GMT</pubDate><description>Office never says how it draws a 3-D pie. But its PDFs contain the picture, and a picture of a cylinder gives away the camera that took it.</description></item>
<item><title>PowerPoint fits SmartArt by guessing, and you can see it in the numbers</title><link>https://khieu.ch/writing/smartart-fits-text-by-guessing/</link><guid>https://khieu.ch/writing/smartart-fits-text-by-guessing/</guid><pubDate>Tue, 03 Nov 2026 12:00:00 GMT</pubDate><description>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.</description></item>
<item><title>PowerPoint kerns SmartArt text with a 1990s table</title><link>https://khieu.ch/writing/powerpoint-kerns-with-an-old-table/</link><guid>https://khieu.ch/writing/powerpoint-kerns-with-an-old-table/</guid><pubDate>Mon, 02 Nov 2026 12:00:00 GMT</pubDate><description>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.</description></item>
<item><title>I wrote a JPEG XR codec for one PowerPoint feature</title><link>https://khieu.ch/writing/a-codec-for-one-image-format/</link><guid>https://khieu.ch/writing/a-codec-for-one-image-format/</guid><pubDate>Wed, 28 Oct 2026 12:00:00 GMT</pubDate><description>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.</description></item>
<item><title>My browser tab opens almost anything now</title><link>https://khieu.ch/writing/opening-everything-in-a-tab/</link><guid>https://khieu.ch/writing/opening-everything-in-a-tab/</guid><pubDate>Wed, 14 Oct 2026 12:00:00 GMT</pubDate><description>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.</description></item>
<item><title>Drawing a document in fonts you don't have</title><link>https://khieu.ch/writing/fonts-you-dont-have/</link><guid>https://khieu.ch/writing/fonts-you-dont-have/</guid><pubDate>Sat, 10 Oct 2026 12:00:00 GMT</pubDate><description>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.</description></item>
<item><title>There's a whole PDF hidden inside this Word for Mac picture</title><link>https://khieu.ch/writing/a-pdf-inside-a-picture/</link><guid>https://khieu.ch/writing/a-pdf-inside-a-picture/</guid><pubDate>Sun, 27 Sep 2026 12:00:00 GMT</pubDate><description>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.</description></item>
<item><title>PowerPoint is my answer key now</title><link>https://khieu.ch/writing/powerpoint-as-the-answer-key/</link><guid>https://khieu.ch/writing/powerpoint-as-the-answer-key/</guid><pubDate>Wed, 26 Aug 2026 12:00:00 GMT</pubDate><description>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.</description></item>
<item><title>I put LibreOffice in the browser, and by the evening it was gone</title><link>https://khieu.ch/writing/libreoffice-in-the-browser/</link><guid>https://khieu.ch/writing/libreoffice-in-the-browser/</guid><pubDate>Tue, 25 Aug 2026 12:00:00 GMT</pubDate><description>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.</description></item>
<item><title>I just want a PDF that looks right</title><link>https://khieu.ch/writing/a-pdf-that-looked-right/</link><guid>https://khieu.ch/writing/a-pdf-that-looked-right/</guid><pubDate>Sun, 23 Aug 2026 12:00:00 GMT</pubDate><description>My fundraising tool for non-profits keeps producing PDFs that don't match the slides. Tomorrow I'm trying something different.</description></item>
</channel></rss>
