<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kaixin Jin</title>
    <description>The latest articles on DEV Community by Kaixin Jin (@kaixin_jin_a80260d18d8ed1).</description>
    <link>https://dev.to/kaixin_jin_a80260d18d8ed1</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4225348%2Fc043425a-3077-4f95-8e7f-ab8e0e541e29.png</url>
      <title>DEV Community: Kaixin Jin</title>
      <link>https://dev.to/kaixin_jin_a80260d18d8ed1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kaixin_jin_a80260d18d8ed1"/>
    <language>en</language>
    <item>
      <title>What's actually inside a 40 MB .pptx?</title>
      <dc:creator>Kaixin Jin</dc:creator>
      <pubDate>Wed, 04 Nov 2026 04:27:15 +0000</pubDate>
      <link>https://dev.to/kaixin_jin_a80260d18d8ed1/whats-actually-inside-a-40-mb-pptx-2jhi</link>
      <guid>https://dev.to/kaixin_jin_a80260d18d8ed1/whats-actually-inside-a-40-mb-pptx-2jhi</guid>
      <description>&lt;p&gt;Someone sends you a 40 MB deck. Twelve slides. Nothing on them looks like a&lt;br&gt;
high-resolution photo. So where did 40 MB come from?&lt;/p&gt;

&lt;p&gt;The answer is one &lt;code&gt;unzip&lt;/code&gt; away, and it tells you a lot about how Office formats&lt;br&gt;
actually work.&lt;/p&gt;
&lt;h2&gt;
  
  
  A .pptx is a ZIP full of XML
&lt;/h2&gt;

&lt;p&gt;OOXML — &lt;code&gt;.docx&lt;/code&gt;, &lt;code&gt;.xlsx&lt;/code&gt;, &lt;code&gt;.pptx&lt;/code&gt; — is a ZIP archive. Rename a copy to &lt;code&gt;.zip&lt;/code&gt;&lt;br&gt;
and open it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Content_Types].xml
_rels/.rels
ppt/
  presentation.xml
  slides/slide1.xml … slide12.xml
  slideLayouts/
  slideMasters/
  media/          &amp;lt;- here
  embeddings/
  fonts/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The XML describing twelve slides is measured in kilobytes. The whole deck's&lt;br&gt;
structure — text, positions, colours, transitions — is tiny.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Practically all of the weight sits in &lt;code&gt;ppt/media/&lt;/code&gt;.&lt;/strong&gt; Sort that folder by size&lt;br&gt;
and the culprit is usually obvious within seconds: a video someone dropped in&lt;br&gt;
"just for reference", or one 8 MB JPEG that got reused as a background.&lt;/p&gt;

&lt;p&gt;That has a very practical consequence: if you want to know &lt;em&gt;why&lt;/em&gt; a file is big,&lt;br&gt;
you don't need to guess. You look inside.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cropping an image does not shrink the file
&lt;/h2&gt;

&lt;p&gt;This is the one that surprises people.&lt;/p&gt;

&lt;p&gt;Crop a 4000×3000 photo down to a neat circle on your slide. The slide now shows&lt;br&gt;
a circle. The file still stores the full 4000×3000 image, because cropping is a&lt;br&gt;
&lt;em&gt;display&lt;/em&gt; operation — it changes which pixels are visible, not which pixels are&lt;br&gt;
saved.&lt;/p&gt;

&lt;p&gt;PowerPoint does give you a way to actually discard them: select the picture,&lt;br&gt;
&lt;strong&gt;Picture Format → Compress Pictures&lt;/strong&gt;, and tick &lt;strong&gt;Delete cropped areas of&lt;br&gt;
pictures&lt;/strong&gt;. That checkbox, not the crop itself, is what removes the bytes.&lt;/p&gt;

&lt;p&gt;Most "my deck is still huge" complaints are this.&lt;/p&gt;

&lt;h2&gt;
  
  
  Compress Pictures is lossy and permanent
&lt;/h2&gt;

&lt;p&gt;The same dialog re-encodes the images at a lower resolution. Worth knowing before&lt;br&gt;
you click it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It is &lt;strong&gt;not&lt;/strong&gt; undoable. Undo does not restore the original quality.&lt;/li&gt;
&lt;li&gt;Keep an uncompressed copy if there's any chance you'll need it later.&lt;/li&gt;
&lt;li&gt;150 ppi is usually indistinguishable on a projector, and it's a big cut from
the 220+ ppi that phones and stock photos ship with.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Video is a different story — and platform-dependent
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;File → Info → Compress Media&lt;/strong&gt; re-encodes embedded video at Full HD 1080p,&lt;br&gt;
HD 720p or Standard 480p. It's usually the single largest win on any deck with&lt;br&gt;
video in it.&lt;/p&gt;

&lt;p&gt;One catch: &lt;strong&gt;it exists in PowerPoint for Windows only.&lt;/strong&gt; The Mac version has no&lt;br&gt;
equivalent. On Mac you have to compress the video externally before inserting&lt;br&gt;
it — which is a genuinely annoying asymmetry if your team is split across&lt;br&gt;
platforms.&lt;/p&gt;

&lt;h2&gt;
  
  
  The quiet contributors
&lt;/h2&gt;

&lt;p&gt;Two more things that add up:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Embedded fonts.&lt;/strong&gt; Settings → Save → &lt;em&gt;Embed fonts in the file&lt;/em&gt;. Fine if the&lt;br&gt;
deck depends on a font your audience may not have; pure overhead otherwise.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Unused slide masters and layouts.&lt;/strong&gt; Stock templates ship with a dozen layouts&lt;br&gt;
across multiple masters. &lt;code&gt;View → Slide Master&lt;/code&gt;, right-click, delete the ones no&lt;br&gt;
slide uses. Each one carries its own background and theme assets.&lt;/p&gt;

&lt;p&gt;And a smaller one: &lt;strong&gt;Save As under a new name.&lt;/strong&gt; Incremental saves accumulate&lt;br&gt;
editing history; a fresh save drops it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reading the file in the browser
&lt;/h2&gt;

&lt;p&gt;The nice thing about all of this is that it's just a ZIP. Which means a browser&lt;br&gt;
can read it too — &lt;code&gt;File&lt;/code&gt; → &lt;code&gt;ArrayBuffer&lt;/code&gt;, parse the central directory, list the&lt;br&gt;
entries, sum the sizes. No server, no upload, no library.&lt;/p&gt;

&lt;p&gt;That's what I ended up building: &lt;a href="https://slidesorted.com/powerpoint-file-size-checker" rel="noopener noreferrer"&gt;a page that takes a .pptx and shows you which&lt;br&gt;
files inside it are responsible for the size&lt;/a&gt;,&lt;br&gt;
broken down by percentage. The file never leaves the device — it's read with the&lt;br&gt;
File API and nothing is transmitted.&lt;/p&gt;

&lt;p&gt;The whole trick is that there is no trick. The format is open, the container is&lt;br&gt;
a ZIP, and the answer to "why is this file 40 MB" has been sitting in&lt;br&gt;
&lt;code&gt;ppt/media/&lt;/code&gt; the entire time.&lt;/p&gt;

&lt;p&gt;If you want the step-by-step version instead of the format explanation, that's&lt;br&gt;
here: &lt;a href="https://slidesorted.com/how-to-compress-a-powerpoint-file" rel="noopener noreferrer"&gt;How to compress a PowerPoint file without ruining the images&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>javascript</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
