Comprimeren van PDF bestanden

12-01-2012 | Marcel van Langen | ColdFusion | adobe, pdf, compressie, optimalisatie

PDF bestanden hebben de neiging om nogal groot te worden. Er zijn diverse commerciële producten op de markt die beweren een PDF bestand te kunnen comprimeren. Het nadeel? Deze producten zijn veelal niet goedkoop. En zijn ze gratis, dan doen ze hun werk niet goed (weinig compressie) of ze plaatsen een watermerk op je PDF. En waarom moeilijk doen als het ook ColdFusion kan?

Iedereen die bekend is met ColdFusion kan de benodigde tag wel raden. Inderdaad: CFPDF. De tag die je kunt gebruiken om PDF bestanden mee te manipuleren. Als uitgangspunt heb ik een PDF bestand van 5 Mb. Boordevol met uitgebreid fotomateriaal. Het bestand is 5.415 Kb groot. Eerst heb ik het bestand met de algemene instellingen gecomprimeerd. Dit heb ik gedaan via de volgende code:

<cfset variables.bestand_huidig = "naam_oud.pdf" />
<cfset variables.bestand_compressed = "naam_nieuw.pdf" />
<cfpdf
action = "optimize"
source = "../#variables.bestand_huidig#"
algo = "bilinear"
pages = "*"
destination = "#variables.bestand_compressed#"
/>

Het eerste dat opvalt, is dat het een zware taak is. Het gebruik van het geheugen knalt omhoog. Mijn supersnelle laptop staat iets meer dan 4 minuten te stampen om het bestand volledig te comprimeren. Niet echt iets wat je regelmatig op productie wilt gaan uitvoeren dus. Het resultaat is qua kwaliteit uitstekend, maar het bestand is slechts teruggebracht tot 5.270 Kb. Niet echt heel veel winst dus.

Maar wellicht lag het aan het gebruikte algoritme. Gelukkig hebben we nog twee keuzes, namelijk "bicubic" en "nearest_neighbor". Deze heb ik beide ook geprobeerd. Beide compressie methoden blijken aanzienlijk langzamer dan het bilineaire algoritme. Bicubic levert na lang werken een bestand op van 5.269 Kb en Nearest Neighbor van 5.273 Kb. De methode maakt in dit geval dus vrijwel niets uit.

Kan het dan wellicht liggen aan de verschillende opties die je nog in kunt stellen? Je kunt bijvoorbeeld opgeven dat bij de compressie niet gebruikte onderdelen als commentaar, javascript etc. wordt genegeerd. Daarmee wordt de gedraaide code als volgt:

<cfset variables.bestand_huidig = "naam_oud.pdf" />
<cfset variables.bestand_compressed = "naam_nieuw.pdf" />
<cfpdf
action = "optimize"
source = "../#variables.bestand_huidig#"
algo = "bilinear"
pages = "*"
destination = "#variables.bestand_compressed#"
noattachments
nobookmarks
nocomments
nofonts
nojavascripts
nolinks
nometadata
nothumbnails
/>

Helaas, ook dit heeft in ons geval vrijwel geen enkel effect. Het bestand is nu teruggebracht naar 5.244 Kb, nauwelijks verschil dus. En dan te bedenken dat ik met het commerciële product PDF Compress het bestand heb weten terug te brengen tot 4.212 Kb. PDF-Online wist mij een bestand te retourneren van 4.893 Kb. Kortom: dit is een van de weinige gevallen dat ColdFusion me niet verder heeft geholpen. Pity.

Over Morloff

Morloff ontwerpt en realiseert succesvolle webtoepassingen op het gebied van procesoptimalisatie, eCommerce en rapportage door de inzet van moderne webtechnieken, sociale media en zoekmachine optimalisatie.

over ons | diensten | portfolio | contact | route

naar website IJsmonster.nl naar website ICT intermediairs naar website marcelvanlangen.com

Twitter

Morloff

Cuneraweg 169a
3911 RH Rhenen

M +31 (0)6 - 515 96 189
W www.morloff.nl
E contactformulier

Morloff op Twitter Morloff op Facebook Morloff op LinkedIn Morloff via RSS