Hvorfor ble PDF-en min knapt mindre?
Jeg kjørte PDF-en min gjennom et komprimeringsverktøy, og den gikk fra 4,1 MB til 4,0 MB. Er verktøyet ødelagt?
En PDF er et arkivskap
Tankemodellen som skaper skuffelsen, er å tenke på en PDF som et bilde av et dokument. Det er den ikke. En PDF, slik ISO 32000 definerer den, er en beholder av nummererte objekter: sidetrær, innholdsstrømmer fulle av tegneoperatorer, innebygde skriftprogrammer, bilde-XObjects, skjemafelter, merknader, innholdsfortegnelser og en kryssreferansetabell som sier hvor hvert objekt begynner.
De fleste av objektene er allerede komprimert. Innholdsstrømmer er som regel Flate-kodet, som er den samme algoritmen en ZIP-fil bruker. Innebygde fotografier er som regel lagret som DCT-strømmer, altså JPEG-data som er ført uendret gjennom. Så når et generelt komprimeringsverktøy ser på en PDF, ser det på en eske med ting som hver for seg allerede er komprimert én gang.
Finn ut hvor bytene ligger før du komprimerer noe som helst
Den klart mest nyttige diagnosen er å vite hva slags dokument du har, for det forutsier resultatet nesten helt.
| Dokumenttype | Hvor bytene ligger | Hva en strukturell lagring kan gjøre |
|---|---|---|
| Tekstrapport fra et tekstbehandlingsprogram | Innebygde skriftprogrammer og små innholdsstrømmer | Svært lite; innholdet er allerede tett |
| Skannede sider | Ett stort bilde per side | Nesten ingenting uten å røre bildene |
| Eksport fra et presentasjonsprogram | Innebygde fotografier og fargeoverganger | Noe, hvis bilder er duplisert på tvers av lysbilder |
| Teknisk tegning | Lange vektorbaserte innholdsstrømmer | Noe, ved å kode om strømmer og fjerne ubrukte objekter |
| Skjema med vedlegg | Innebygde filer, JavaScript, merknadsordbøker | Mye, hvis tilleggene kan fjernes |
Hva en strukturell lagring faktisk fjerner
En strukturell lagring skriver dokumentet på nytt uten å endre hvordan noen side ser ut. Den kan kaste objekter som ingenting lenger refererer til, og som samler seg opp hver gang et dokument redigeres og lagres inkrementelt. Den kan komprimere kryssreferansetabellen og pakke små objekter i objektstrømmer. Den kan fjerne dokumentmetadata, miniatyrbilder og redigeringshistorikken som enkelte produsenter etterlater seg.
På et dokument som er redigert og lagret på nytt mange ganger, kan det bli en stor gevinst. På et dokument som er eksportert rent, én gang, fra et tekstbehandlingsprogram, er det ingenting å samle opp: filen er allerede nær den minste formen av seg selv, og hundre kilobyte av fire megabyte er nøyaktig det resultatet du skal forvente.
Hvorfor et tekstdokument gjør motstand
I en tekst-PDF er en stor del av filen som regel innebygde skrifter. Et skriftprogram er en kompakt binærfil med glyffkonturer og hintinginstruksjoner, og det ligger der fordi dokumentet må gjengis identisk på en maskin som ikke har den skrifttypen installert. Du kan ikke komprimere det bort uten enten å redusere det til et mindre delsett eller fjerne det, og å fjerne det endrer hvordan siden ser ut.
Selve teksten er bitte liten. Hundre sider prosa er noen hundre kilobyte med tegn før komprimering. Er tekst-PDF-en din stor, se på skriftene og på eventuelle bilder som gjemmer seg bak teksten – en logo gjentatt i en topptekst, et vannmerke i bakgrunnen – heller enn på ordene.
Hvorfor en skanning kollapser
En skannet side er ett stort fotografi av et papirark, ofte tatt opp med 300 punkter per tomme eller mer. En A4-side ved 300 DPI er omtrent 2480 × 3508 piksler – nesten ni millioner av dem, for en side hvis informasjonsinnhold er noen få kilobyte tekst. Det er derfor skanninger reagerer så dramatisk på rasterisert komprimering: å redusere gjengivelsesoppløsningen og kode sidebildene på nytt angriper den delen av filen som faktisk er stor.
Det er også derfor den modusen er destruktiv. Når en side først er et bilde, er det søkbare tekstlaget, lenkene, skjemafeltene, merknadene, den taggede tilgjengelighetsstrukturen og enhver digital signatur borte. FileSlimmer behandler rasterisering som en egen, tydelig merket modus med den advarselen på, i stedet for som en stille reserveløsning når den strukturelle lagringen skuffer.
Hvorfor ingen kan love deg et tall
En målstørrelse for en PDF er et søk over gjengivelsesoppløsning og bildekvalitet, og søket har et gulv: under en viss oppløsning slutter teksten på en skanning å være leselig. Om et bestemt dokument når et bestemt budsjett over det gulvet, avhenger av sidetallet, blekkdekningen, mengden fotografisk innhold og støyen fra skanneren. To dokumenter med samme sidetall kan ende på svært ulike størrelser.
Den ærlige atferden er å stoppe på gulvet og melde fra om hvor søket stoppet, og det er det FileSlimmers ferdigoppsett for PDF-målstørrelser gjør. Et verktøy som alltid treffer tallet du skrev inn, lyver enten om tallet eller ødelegger dokumentet for å komme dit.
Før du klandrer verktøyet
- Sjekk om PDF-en er en skanning. Prøv å markere en tekstlinje: hvis markøren ikke får tak i noe, er hver side et bilde.
- Sjekk sidetallet opp mot størrelsen. En fil på 40 MB med tre sider er bildetung; en fil på 40 MB med 900 sider kan være helt rimelig.
- Sjekk om dokumentet er kryptert. En passordbeskyttet PDF kan ikke restruktureres i det hele tatt før den er låst opp.
- Sjekk om det er signert. Å skrive om et signert dokument ugyldiggjør signaturen, og det er som regel et verre utfall enn en stor fil.
- Sjekk hva du faktisk trenger. Å skille ut de seks sidene du må sende, slår ofte det å komprimere alle nitti.
Verktøy for dette
Kilder
- ISO 32000-2 — Document management, Portable Document Format
- Adobe — PDF 32000-1:2008, the freely published PDF 1.7 specification
- PDF Association — ISO 32000 and the PDF standards family