Formats2026-08-214 min läsning

Vad som faktiskt händer när du komprimerar en PDF

PDF123 Komprimera utför qpdf-omkomprimering av strömmar och packning i objektströmmar, inte nedsampling av bilder, förstörande JPEG-omkodning eller teckensnittssubsetting. Lineariseringen ändrar filstorleken knappt.

PDF123 · Updated 2026-09-19

Två PDF-filer kan se identiska ut på skärmen och ändå skilja sig med tre storleksordningar: 50 KB mot 50 MB. Skillnaden sitter nästan aldrig i textoperatorerna. I ett avtal på tjugo sidor är de oftast några tiotal kilobyte; allt annat är bildsamplar, ett fullständigt inbäddat teckensnittsprogram och hur tätt strömmar och objekt är packade.

Det får en konsekvens som är värd att säga tidigt: ”komprimera en PDF” är inte en åtgärd utan fyra. De krymper olika saker och tar olika betalt, och den som behandlar dem som en enda får motsägelsefulla erfarenheter: filen komprimerades men blev inte mindre, eller den blev mindre men sidorna tappade skärpa.

Diagram över en PDF som krymper genom qpdf-omkomprimering av strömmar och packning i objektströmmar, med linearisering som ett separat steg utan storlekseffekt

Var storleken kommer ifrån

De flesta fall av ”varför är den här PDF:en så stor?” börjar med en högupplöst skanning eller ett foto som fortfarande är inbäddat i sin inspelningsstorlek. Räkningen är värd att göra en gång: en sida i Letter-format på 8,5 × 11 tum vid 300 DPI är ungefär 2550 × 3300 pixlar, och med tre byte per pixel är det okomprimerat runt 25 MB. Tjugo sådana sidor landar ofta på 60 till 80 MB innan någon rör komprimeringen.

Den andra källan är teckensnitt. En PDF kan bädda in ett komplett teckensnittsprogram så att varje maskin återger texten identiskt, och den kostnaden mäts i storleken på glyftabellerna, inte i hur mycket text som faktiskt läses. Det är därför teckensnittssubsetting är en egen storleksspak.

Den tredje källan är packningen i sig. Samma innehåll kan vara lagrat med slösaktiga komprimeringsinställningar, eller så kan objekten ligga utspridda i filen, var och en med sin egen bokföring. Inget av det ändrar en enda pixel eller glyf, och det är precis den delen som omkomprimering av strömmar kan komma åt.

Bakom ”komprimera” ligger fyra olika spakar

Det finns fyra spakar som påverkar storleken. De verkar på olika lager och deras kostnader överlappar knappt. Att välja fel är den vanligaste orsaken till att en komprimeringskörning verkar göra ingenting.

Spak Vad den rör Storlekvinst Kostnad
Omkomprimering av strömmar och objektströmmar Hur innehållsströmmar komprimeras, hur objekt lagras och packas Beror på hur löst originalfilen var packad Sidornas utseende oförändrat
Nedsampling av bilder Antalet pixlar, det vill säga upplösningen Stor Upplösningen sänks permanent
Förstörande omkodning av bilder Bitmappens byte-representation Stor Bildkvaliteten sänks
Teckensnittssubsetting De inbäddade glyftabellerna Måttlig Glyfer som inte används går inte längre att redigera
Linearisering Ordningen på objekten Nästan noll Köper i stället laddningstiden för första sidan

De fyra första raderna kallas alla löst för ”komprimering”, men bara den första lämnar innehållet i fred. Det är också den rad vars utbyte är lättast att bedöma fel: en skanning vars storlek mest består av råa bildsamplar har lite redundans för den att ta bort, och de spakar som skulle krympa den rejält är nedsampling och förstörande omkodning, till priset av att den upplösningen och kvaliteten försvinner för gott.

Vilken av de fyra spakarna PDF123 Komprimera drar i

Komprimera en PDF (POST /api/v1/misc/compress-pdf) gör bara den första raden. Den kör qpdf med komprimering av okomprimerade strömmar (--compress-streams=y), en andra omgång över strömmar som redan komprimerats med Flate (--recompress-flate) och packning av objekt i objektströmmar (--object-streams=generate).

Den samplar inte om bilder, kodar inte om bitmappar till lägre JPEG-kvalitet och subsettar inga teckensnitt. Sidorna bör se likadana ut, och besparingen kommer från Flate-omkomprimering och packning i objektströmmar.

Felfallet förtjänar samma tydlighet. När en fils storlek mest består av bilddata som redan komprimerats som JPEG har Flate inget kvar att pressa, eftersom de bildbytena ligger utanför vad de tre omkopplarna ovan rör. Därför kan ett skanningspaket komma tillbaka bara några procent mindre, medan en texttung PDF av liknande storlek vinner märkbart mer.

Den omvända vägen är Dekomprimera PDF, som expanderar strömmar för inspektion (--qdf, objektströmmar avstängda) och inte heller ändrar hur sidorna ser ut.

När en annan väg är den rätta

Det du behöver Vägen du ska ta
Identiskt utseende, bara bli av med packningskostnaden Komprimera
Ett skanningspaket som är genuint för stort och kvalitetsförlust är acceptabel Nedsampling eller förstörande omkodning, inte denna Komprimera
Fortsatt redigerbart, men nästa tecken går inte att skriva Andra exportinställningar eller källfil, se teckensnittssubsetting
Webbläsaren ska se första sidan tidigare Linearisering löser första målningen, inte storleken
Filen går inte att öppna alls Reparera, ett strukturellt problem och inte ett storleksproblem

En fälla ligger i den sista raden: Linearisera PDF är ingen egen implementation här utan ett alias för Komprimera. Båda pekar på samma operation, det kanoniska id:t är misc/compress-pdf med linearize-pdf som alias, portalen skickar alltid linearize=true och optimizeLevel=1 för det verktyget, servern läser inget av fälten, och qpdf får aldrig --linearize. Den operation som faktiskt lineariserar en fil är Skydda, när den krypterar.

Om du alltså vill ha samma utseende i en mindre fil är Komprimera hela svaret. Vill du ha förstörande bildkomprimering eller teckensnittssubsetting är den här vägen fel spak. Filen kommer tillbaka direkt, utan konto. Var objekt, strömmar och korstabellen faktiskt ligger fortsätter du med Vad som finns inuti en PDF.

Open tool
Process in the browser — no watermark, files removed after the job.
Open tool