Alles over de werking van pdf-bestanden

Pdf, wat staat voor portable document format, is een bestandsformaat dat is ontwikkeld om documenten onafhankelijk van het gebruikte platform, apparaat of applicatie, te presenteren. Hoe is dit formaat ooit bedacht en hoe werken pdf-bestanden precies?

In de jaren 90 van de vorige eeuw was het concept van het ‘papierloze kantoor’ zeer levendig. Wilde men die droom verwezenlijken dan moest men een makkelijke(r) methode vinden om computerdocumenten met behoud van lay-out en afbeeldingen te delen.

Verschillende softwarebedrijven zagen hier het grote geld in: ze trachtten hun eigen bestandsformaat ingang te doen krijgen en tot een de facto standaard te laten uitgroeien. Het waren de jaren waarin formaten als Common Ground Digital Paper, DjVu, WordPerfect Envoy en Farallon Replica elkaar het licht in de ogen niet gunden. Uiteindelijk is het echter het pdf-formaat van Adobe geworden dat tot een algemeen aanvaarde standaard kon uitgroeien.

Adobe beschikte immers al over twee technologieën die perfect konden worden ingezet voor dit project: enerzijds PostScript, een pdl (page description language) waarmee documenten onafhankelijk van apparaat en platform konden beschreven worden, en anderzijds Adobe Illustrator, een applicatie die zowel op Mac als Windows draaide en PostScript-bestanden kon weergeven. Op basis van deze technologieën creëerden ontwikkelaars binnen Adobe een nieuw bestandsformaat: pdf.

Belangrijke begrippen

Voor we verder gaan, leggen we eerst even enkele belangrijke begrippen uit:

Tagged pdf

Pdf-bestand dat ook structurele meta-informatie bevat over de weergegeven data, zoals titels, tekstblokken, enz. Dat is onder meer handig voor weergaven op ebooks, gezien pdf-bestanden nu makkelijker kunnen worden aangepast met het oog op de diverse apparaattypes.

Adobe extensies

Pdf mag dan een open standaard zijn, het neemt niet weg dat Adobe regelmatig nog enkele ‘gesloten’ oftewel propriëtaire technologieën toevoegt aan pdf, in de vorm van Adobe extensies en met verschillende levels. Iets om rekening mee te houden, want wie deze extensies gebruikt, heeft geen garantie dat iedere pdf-reader daarmee overweg kan.

Pdf/A

Een speciale variant van pdf die specifiek werd ontwikkeld voor archivering en dus met name is geschikt voor het bewaren van digitale documenten. Omdat men ook op langere termijn een zo statisch en consistent mogelijke weergave beoogt, vermijdt men bewust allerlei ‘toeters en bellen’ uit de pdf-standaard, zoals multimediafuncties, scripting en formulieren.

Opbouw van een pdf-bestand

Pdf kun je vooral zien als een geoptimaliseerde subset van PostScript. Niet alleen werden meer complexe programmatorische elementen geweerd, zoals lussen en voorwaardelijke commando’s, bij pdf is het ook niet langer zo dat de beschrijving van de ene pagina de weergave van een volgende pagina kan beïnvloeden. In tegenstelling tot PostScript hoeven bij pdf dus niet noodzakelijk alle voorgaande pagina’s te worden verwerkt om de juiste weergave van een willekeurige pagina vast te stellen. Dat maakt dat je in een pdf-reader snel naar alle pagina’s van een lijvig pdf-document kunt springen.

Naast deze PostScript-subset vind je in een pdf-bestand ook een technologie terug die je toelaat fonts in te bedden, zodat de ontvanger van het document de bedoelde fonts te zien krijgt, ook wanneer die niet op zijn systeem zijn geïnstalleerd.

Al deze informatie wordt dan samen met eventuele bijkomende inhoud op een gestructureerde manier en desgevallend met gebruik van datacompressie in één enkel bestand opgeslagen.

Het is goed om weten dat een pdf-bestand twee verschillende lay-outs kan hebben. Enerzijds zijn er de niet-lineaire of niet-geoptimaliseerde pdf-documenten die weliswaar iets minder schijfruimte vergen maar die zich minder snel laten verwerken gezien allerlei data over het hele pdf-document kunnen verspreid liggen. Anderzijds zijn er de lineaire, geoptimaliseerde pdf’s: die zijn paginagewijs opgebouwd zodat bijvoorbeeld een browserplug-in niet hoeft te wachten tot het volledige bestand is gedownload om de eerste pagina’s te kunnen tonen.

Er bestaan verschillende tools waarmee je pdf-bestanden kunt lineariseren, waaronder het gratis QPDF. Op deze site lees je de nodige instructies voor dit proces. Ook met de virtuele pdf-printer BullZip kun je zulke documenten creëren, maar jammer genoeg lukt dat alleen in de betaalde Professional-editie en niet in de gratis Community-versie.

Open standaard

De eerste versie van pdf (pdf 1.0) werd door in Adobe in 1992 uitgebracht en enkele maanden later volgde Acrobat, een tool waarmee gebruikers makkelijk pdf-bestanden konden bekijken en creëren. Deze pdf-versie kon weliswaar fonts, interne links en bookmarks insluiten, maar gezien alleen de rgb-kleurenruimte werd ondersteund kon de grafische industrie daar weinig mee aanvangen.

Voor de prepress-wereld was het wachten tot versie 1.2 (1996), met ondersteuning voor onder meer cmyk en steunkleuren, en vooral tot de pdf/X-1 specificatie (1998), gezien die meer garanties inbouwde voor een geldige opmaak.

pdf-bestand

© PXimport

Tegen het einde van vorige eeuw was pdf – intussen aan versie 1.3 toe - stilaan tot een de facto standaard uitgegroeid en meer dan 100 miljoen gebruikers hadden intussen ook Acrobat Reader gedownload. Daaropvolgende versies boden geleidelijk aan meer functionaliteit: zo ondersteunde 1.4 ook ‘tagged pdf’s’ (zie begrippenkader) en kon 1.5 eindelijk ook met lagen (layers) overweg. Het is echter wachten tot versie 1.7, in 2008, voor pdf een officiële, ISO-standaard wordt (ISO 32000-1).

Recentelijk, in juli 2017, heeft het ISO-comité trouwens de specificaties van pdf 2.0 (ISO 32000-2) vrijgegeven. Wie zich hierin wil verdiepen kan terecht op www.bit.ly/2yatoMa, goed voor bijna 1000 pagina’s. Hiermee wil het comité het pdf-formaat vooral veiliger en toegankelijker maken en verder ook allerlei ‘rich media’ beter ondersteunen, zoals 3D, video en geospatiale data.

Afbeeldingen, fonts en formulieren

Pdf-bestanden kunnen met diverse objecten overweg. Een aantal hiervan verdient nadere aandacht, temeer omdat je daar ook als eindgebruiker mee te maken krijgt, vooral als je zelf pdf’s creëert.

Al sinds het begin was het mogelijk afbeeldingen in pdf-documenten op te nemen, zowel vector- als rasterafbeeldingen. Een vectorafbeelding wordt geconstrueerd aan de hand van coördinaten en paden, zoals lijnen en Bézier-curves. Een rasterafbeelding daarentegen is weinig meer dan een matrix die uit bits met een bepaalde kleurwaarde zijn samengesteld – vandaar ook wel bitmapafbeelding genoemd. Deze laatste vergen niet alleen meer schijfruimte, ze laten zich ook veel lastiger schalen.

Iets om rekening mee te houden, bijvoorbeeld wanneer je een pdf aan een service bezorgt die het plaatje eventueel uitvergroot op doek wil afdrukken. Je kunt die afbeelding dan eventueel eerst laten ‘vectoriseren’ door een gratis service als Vectorizer of door die met een gratis toepassing als Inkscape te bewerken (via Paden / Bitmap overtrekken). Houd er echter rekening mee dat vectorplaatjes niet bij alle pdf-creatietools overleven. De exportfunctie van MS Word bijvoorbeeld maakt er standaard alsnog bitmaps van, maar die van Inkscape doet dat niet.

Zoals gezegd laat pdf je ook toe fonts in het document op te nemen (embedded fonts). Houd er wel rekening mee dat OpenType-fonts (met extensie otf) pas vanaf pdf 1.6 kunnen worden ingebed. Fonts die niet zijn ingebed en die evenmin op het systeem met de pdf-reader zijn geïnstalleerd worden doorgaans niet correct weergegeven en vervangen door een (systeem)font. Gebruik je dus niet-standaard fonts dan moet je die dus in je pdf-document laten opnemen.

De meeste pdf-creatietools voorzien in deze mogelijkheid, maar het kan wel even zoeken zijn naar de juiste optie of formulering. Afhankelijk van de (beschikbare) instellingen is het ook mogelijk om alleen een subset van een font in te bedden: in dit geval worden alleen de gebruikte tekens ingesloten. Hoe dan ook, voor een absolute controle over ‘font embedding’ kun je nauwelijks buiten Adobe Acrobat. Vanuit Acrobat Reader kom je als volgt te weten welke (subset van) fonts in een pdf-document zijn ingesloten: ga naar het menu Bestand, kies Eigenschappen en open het tabblad Fonts.

Houd er echter rekening mee dat niet noodzakelijk elk font je de nodige rechten toekent om het (in een pdf) in te bedden.

Voor een absolute controle over ‘font embedding’ kun je nauwelijks buiten Adobe Acrobat

-

Pdf’s voorzien ook in een mechanisme om interactieve formulieren toe te voegen. Daar bestaan echter twee methodes voor: enerzijds AcroForms (vanaf pdf 1.2), anderzijds Adobe XML Forms Architecture (xfa). Deze laatste werd geïntroduceerd in pdf 1.5 maar maakt geen deel uit van de officiële pdf-specificatie, wat maakt dat AcroForms vooralsnog breder inzetbaar is.

Je hebt uiteraard wel de juiste tools nodig om een pdf met AcroForms te creëren. Dat kan bijvoorbeeld niet vanuit MS Word, ondanks het feit dat je hier wel degelijk interactieve formulierbesturingselementen kunt toevoegen. Dat kan bijvoorbeeld wél vanuit de gratis LibreOffice Writer. Belangrijk evenwel is dat je bij Bestand / Exporteren als PDF op het tabblad Algemeen een vinkje plaatst bij PDF-formulieren maken en FDF selecteert bij Opmaak bevestigen. Fdf (Forms Data Format) is een van formaten waarin AcroForms de formulierdata kan opslaan.

pdf-bestand

© PXimport

Het is zelfs mogelijk bestandsbijlagen te koppelen aan een pdf, zowel op document- als op paginaniveau. De ontvanger kan die dan openen en bewaren. Hiervoor kun je onder meer het gratis programma pdftk inzetten. Deze tool laat zich (ook) vanaf de opdrachtregel aansturen. Om de bijlage voorbeeld.xlsx aan pagina x van document.pdf te koppelen geef je het volgende commando: pdftk “document.pdf” attach_file “voorbeeld.xlsx” to_page x output doc_met_bijlage.pdf. Je laat de parameter to_page x weg als je de bijlage aan het document wilt koppelen in plaats van aan een specifieke pagina.

Beveiliging pdf-bestanden

Gezien vaak ook officiële documenten via pdf worden gedistribueerd hebben de ontwikkelaars ook de nodige aandacht gegeven aan het veiligheidsaspect. Enerzijds kun je een pdf-document voorzien van een digitale handtekening, anderzijds is het ook mogelijk het document te encrypten. Dat laatste gebeurt door middel van een gebruikerswachtwoord.

Het is eveneens mogelijk je document van een ‘eigenaarswachtwoord’ (owner password) te voorzien. Dit laatste heb je dan nodig om bepaalde operaties met het document te kunnen uitvoeren, zoals het afdrukken (in hoge resolutie), het wijzigen of bewaren van het document, het toevoegen van opmerkingen of het invullen van AcroForm-velden. Houd er echter rekening mee dat dit eigenaarswachtwoord niet noodzakelijk altijd het gewenste resultaat heeft. Het hangt namelijk van de clientsoftware (de pdf-reader) af in hoeverre die daar rekening mee houdt.

Komt daarbij dat er voldoende tools en services bestaan die zo’n eigenaarswachtwoord wel even voor je zullen verwijderen. Wil je meer zekerheid dat de gewenste beperkingen niet zomaar te omzeilen vallen, dan zit er weinig anders op dan je toevlucht te nemen tot commerciële oplossingen als die van Adobe (LiveCycle) of Locklizard: die maken immers gebruik van irm (information rights management). Een nadeel dan weer is dat client-software met deze beveiliging overweg moet kunnen.

Veiligheid is echter niet alleen een kwestie van het correct afschermen of encrypten van pdf-documenten. Het is namelijk al gebeurd dat malware zich als een bijlage aan pdf-documenten konden hechten om langs die weg systemen te compromitteren. Het grootste gevaar schuilt echter in de clientsoftware oftewel de pdf-readers. Zo zijn er al vaak exploits ontdekt in Adobe Reader, maar ook in alternatieve software als Foxit Reader. Het feit dat de pdf-standaard ook scripting (met JavaScript) toelaat zorgt voor een extra aanvalsingang.

De toekomst

Pdf is in elk geval nog springlevend – getuige de recente 2.0 van de iso-standaard. Daar heeft men wel 9 jaar op moeten wachten. Adobe is namelijk lang niet meer de enige partij die de ontwikkelingen stuurt. Het lijkt er echter sterk op dat de toekomst van pdf in eerste instantie het idee achter ‘tagged pdf’ verder zal uitbreiden, in de hoop tot een soort van responsieve pdf te komen, ongeveer zoals bij html voor de weergave van webpagina’s.

Dat zou er idealiter voor zorgen dat pdf-documenten ‘on the fly’ kunnen worden getransformeerd zodat ze op alle mogelijke apparaten, inclusief op kleine schermen zoals die van smartphones, optimaal worden weergegeven. In vooralsnog beperkte kringen heeft men het weliswaar al over ‘pdf.next’, maar in dit prille stadium is het wellicht correcter te zeggen: pdf: what’s next?

Deel dit artikel
Voeg toe aan favorieten
ID.nl logo

ID.nl, onderdeel van Reshift BV, is in 2022 gestart en uitgegroeid tot de meest toonaangevende en complete consumentensite van Nederland. Het doel van ID.nl is om de consument te helpen met alle technologie die hoort bij het dagelijks leven: van smart-health-meters tot e-bikes, van warmtepompen tot zonnepanelen - en alles daar tussenin!

Duidelijk, betrouwbaar en onafhankelijk: ID.nl maakt moeilijke dingen makkelijk.

Contact

ID.nl

Nijverheidsweg 18

2031 CP Haarlem

info@id.nl

Telefoon: 023-5430000