Kleur, profielen, en waarom jouw rood niet mijn rood is
Spec: ISO 32000-2, §8.6ISO 32000-2 §8.6Spec: ISO 15930, PDF/XISO 15930 PDF/X
In een oogopslag
Sectie met titel “In een oogopslag”Een kleur in een PDF is geen vaste gewaarwording. Het is een instructie, en of die instructie hetzelfde rood oplevert op je laptop, op een telefoon en op een drukpers, hangt volledig af van hoe de kleur is beschreven. Deze pagina gaat over het verschil tussen een kleur die een apparaat slechts vertelt wat het moet doen en een kleur die zegt hoe ze er werkelijk uit zou moeten zien.
Waarom dit belangrijk is
Sectie met titel “Waarom dit belangrijk is”Kies een merkrood. Stel het één keer in. Bekijk het nu op een goedkope kantoormonitor, dan op een OLED-telefoon in een fel verlichte ruimte, en vervolgens van een offsetpers af. Drie keer rood. Soms drie duidelijk verschillende roden. Niemand veranderde het getal; het getal was nooit het hele verhaal.
Voor een terloops document is dit een schouderophalen waard. Voor een logo, een gereguleerd etiket, een foto in een catalogus of een document dat decennialang moet overleven, is een kleur die afdrijft een gebrek. De kosten zijn niet abstract: het is een herdruk, een afgekeurde proef, of een archief waarvan de pagina’s niet langer overeenkomen met de originelen. De oplossing is geen beter getal. Het is de waarheid vertellen over wat het getal betekent.
De korte versie
Sectie met titel “De korte versie”- Apparaatkleur benoemt een kleur via de stuurwaarden die een apparaat
ontvangt, dus het resultaat is wat dat apparaat ervan maakt
(Spec: ISO 32000-2, §8.6.4ISO 32000-2 §8.6.4).
DeviceRGB,DeviceCMYKenDeviceGrayzijn apparaatkleurruimten. Dezelfde getallen, andere hardware, andere kleur. - Gekalibreerde, op ICC gebaseerde kleur koppelt die getallen via een ingebed profiel aan een gemeten, apparaatonafhankelijke referentie (Spec: ISO 32000-2, §8.6.5.5ISO 32000-2 §8.6.5.5). Nu draagt het document genoeg informatie om de beoogde kleur te reproduceren, niet slechts een recept van stuurwaarden.
- Een ICC-profiel is die gemeten afbeelding: hoe de getallen van een apparaat — of die van een standaardkleurruimte of uitvoerconditie — zich verhouden tot de kleur die een menselijk oog zou waarnemen, verankerd aan een apparaatonafhankelijke verbindingsruimte.
- Een rendering intent is het beleid voor wat te doen wanneer een kleur buiten het bereik van een apparaat valt, want geen enkel apparaat kan elke kleur tonen.
- Een output intent is het document dat vooraf de uitvoerconditie declareert waarvoor het is voorbereid (Spec: ISO 32000-2, §14.11.5ISO 32000-2 §14.11.5). Workflows voor drukwerk (PDF/X) en archivering (PDF/A) zijn ervan afhankelijk.
Hoe NextPDF dit aanpakt
Sectie met titel “Hoe NextPDF dit aanpakt”Begin met de eerlijke versie van het probleem. DeviceRGB bevat geen kleur.
Het bevat drie getallen tussen 0 en 1 en een onuitgesproken aanname dat een of
ander scherm ze in licht zal omzetten. Twee schermen met verschillende
achtergrondverlichting, verschillende panelen en verschillende kalibratie zetten
dezelfde drie getallen om in zichtbaar verschillend licht. Dat is geen fout in
PDF. Het is wat “apparaatkleur” betekent, en de standaard is er openhartig over:
apparaatkleurruimten worden gedefinieerd door de waarden die een apparaat
ontvangt, niet door een absoluut uiterlijk
(Spec: ISO 32000-2, §8.6.4ISO 32000-2 §8.6.4).
Gekalibreerde kleur dicht die kloof door een referentie toe te voegen. Een ICC-profiel is het resultaat van het karakteriseren van een apparaat of kleurruimte — een monitor, een printer, een pers of een standaardruimte zoals sRGB — en het vastleggen van hoe de ruwe getallen ervan zich verhouden tot kleur in een apparaatonafhankelijke verbindingsruimte die het menselijk zicht benadert. Bed dat profiel in en de getallen houden op een privédialect te zijn; ze worden een uitspraak die verankerd is aan iets waar iedereen het over eens kan zijn. Dat is precies wat een op ICC gebaseerde kleurruimte draagt (Spec: ISO 32000-2, §8.6.5.5ISO 32000-2 §8.6.5.5): de kleur, plus de gemeten afbeelding die zegt wat ze betekent.
Er is een tweede, onvermijdelijke complicatie. De verzameling kleuren die een pers kan drukken is niet de verzameling die een telefoon kan tonen, en geen van beide is de volledige verzameling die het menselijk oog kan zien. Wanneer een kleur buiten valt wat een doelapparaat kan reproduceren, moet er een keuze worden gemaakt: ze afkappen tot de dichtstbijzijnde bereikbare kleur, of een heel bereik van kleuren samen verschuiven zodat hun onderlinge verhoudingen intact blijven. Die keuze is de rendering intent — een weloverwogen beleid, gekozen voor de taak, geen toeval van afronding. Een foto en een bedrijfslogo willen vaak verschillende intents, omdat het ene geeft om vloeiende verlopen en het andere om het exact raken van een staal.
Tot slot kan een document dat ergens specifieks naartoe gaat dat zeggen. Een output intent is het bestand dat de uitvoerconditie declareert waarvoor het is voorbereid — doorgaans een ingebed ICC-bestemmingsprofiel dat een drukconditie of apparaat benoemt (Spec: ISO 32000-2, §14.11.5ISO 32000-2 §14.11.5). Het is het verschil tussen een drukker een bestand overhandigen en hem een bestand overhandigen dat zegt: “Ik ben gebouwd voor deze pers.” Druk-uitwisselingsprofielen maken het verplicht: een PDF/X-bestand (de ISO 15930-familie) is verplicht een output intent te dragen (Spec: ISO 15930, PDF/XISO 15930 PDF/X), en PDF/A steunt op hetzelfde mechanisme zodat de apparaatafhankelijke kleuren van een gearchiveerd bestand interpreteerbaar blijven, ver in de toekomst, lang nadat de oorspronkelijke omgeving verdwenen is.
- Name the colourChoose a colour space. DeviceRGB/CMYK/Gray name control values; an ICC-based space anchors them to a device-independent reference (ISO 32000-2 §8.6).
- Anchor it (optional but decisive)Embed an ICC profile so the numbers carry their measured meaning, not just a device recipe (ISO 32000-2 §8.6.5.5).
- Reconcile to the deviceA rendering intent decides what happens to colours the target device cannot reproduce — clip the nearest, or shift the range to preserve relationships.
- Declare the destinationAn output intent states the output condition the document was prepared for, as PDF/X and PDF/A workflows require (ISO 32000-2 §14.11.5).
De taak van NextPDF in deze keten is standaardcorrect te zijn: de kleurruimten, ingebedde profielen en output intents te schrijven zoals het formaat ze definieert, zodat een downstream-tool — de RIP van een drukker, een archiefvalidator, een viewer — precies leest wat bedoeld was. Het produceert de declaraties; het doet niet alsof het het apparaat is.
Praktisch voorbeeld
Sectie met titel “Praktisch voorbeeld”De onderstaande vorm schetst de beslissing, niet een specifieke API. Het punt is dat de bestemming vermeld wordt, niet gegokt.
<?php
declare(strict_types=1);
use NextPDF\Contracts\PdfDocumentInterface;
/** * Prepare a print-bound document that declares its intended output condition. * * The colour numbers alone do not fix the appearance. Declaring the output * intent — the print condition the file was built for — is what lets a press * interpret those numbers faithfully (ISO 32000-2 §14.11.5). * * @param PdfDocumentInterface $doc A composed document. * @param string $iccProfileBytes The destination ICC profile for the * target print condition. * * @return string The document bytes, carrying a declared output intent. */function prepareForPress( PdfDocumentInterface $doc, string $iccProfileBytes,): string { // Declare the output condition explicitly. The document now states the // device/print condition it was prepared for, instead of leaving its // device colours open to interpretation. $doc->setOutputIntent( identifier: 'Custom press condition', iccProfile: $iccProfileBytes, );
return $doc->output();}De kleuren veranderden niet. Wat veranderde, is dat het bestand nu zegt hoe ze eruit zouden moeten zien, en dat is het enige waar een pers of een validator op kan handelen.
Veelvoorkomend misverstand
Sectie met titel “Veelvoorkomend misverstand”“Het is dezelfde hexwaarde, dus het is dezelfde kleur.” De hexwaarde is een set apparaatstuurwaarden. Zonder een profiel of een output intent is het een recept zonder gespecificeerde keuken — het smaakt in elke keuken anders. Twee bestanden kunnen identieke RGB-getallen dragen en eerlijk verschillende kleuren zijn, omdat het ene de context declareert die de getallen betekenis geeft en het andere het aan het toeval overlaat.
Een tweede valkuil: aannemen dat DeviceCMYK automatisch “drukklaar” betekent.
Dat doet het niet. CMYK is nog steeds apparaatkleur; het is persvormig, maar het
is niet gekalibreerd totdat een profiel of output intent de werkelijke
persconditie benoemt.
Limieten en grenzen
Sectie met titel “Limieten en grenzen”NextPDF produceert standaardcorrecte kleur: het schrijft apparaat- en op ICC gebaseerde kleurruimten en declareert output intents voor PDF/X-achtige en PDF/A-workflows, zoals het formaat ze definieert. Dat is de producerende helft van de taak, en het is de helft die een document zelf in handen kan hebben.
Wat NextPDF niet is, is een kleurproefsysteem. Het meet je monitor niet, maakt geen soft proof van een pers op het scherm, en certificeert niet dat het gedrukte resultaat binnen een tolerantie overeenkomt met een beoogd staal. Die horen bij een kleurbeheerde proefketen en de mensen die deze beheren. De engine laat het bestand het juiste zeggen; of het uiteindelijke apparaat dat eert, wordt downstream beslist, door het apparaat, de ICC-profielen die in het spel zijn, en — voor PDF/X en PDF/A — door een validator, niet door de producent.
Gerelateerde documentatie
Sectie met titel “Gerelateerde documentatie”- What a PDF actually is — het objectmodel waarbinnen deze kleurruimten en output intents leven.
- Archival and PDF/A — waarom langdurige bewaring leunt op apparaatonafhankelijke kleur en output intents.
- The standards landscape — waar ISO 32000-2, PDF/X (ISO 15930) en PDF/A (ISO 19005) zich ten opzichte van elkaar bevinden.
- PDF 2.0: what changed — hoe de huidige formaateditie kleur en conformiteit kadert.
Verklarende woordenlijst
Sectie met titel “Verklarende woordenlijst”- Apparaatkleurruimte — een kleur benoemd via de stuurwaarden die een
apparaat ontvangt (
DeviceRGB,DeviceCMYK,DeviceGray); het uiterlijk hangt af van het interpreterende apparaat (ISO 32000-2 §8.6.4). - Gekalibreerde / op ICC gebaseerde kleur — kleur verankerd aan een apparaatonafhankelijke referentie via een ingebed ICC-profiel, zodat het beoogde uiterlijk reproduceerbaar is over apparaten heen (ISO 32000-2 §8.6.5.5).
- ICC-profiel — een gemeten afbeelding tussen de getallen van een specifiek apparaat en een apparaatonafhankelijke referentie die het menselijk zicht benadert.
- Rendering intent — het beleid voor het omgaan met kleuren die een doelapparaat niet kan reproduceren: afkappen tot de dichtstbijzijnde bereikbare kleur, of een bereik verschuiven om de onderlinge kleurverhoudingen te behouden.
- Output intent — de declaratie door het document van de uitvoerconditie waarvoor het is voorbereid, doorgaans via een ingebed ICC-bestemmingsprofiel (ISO 32000-2 §14.11.5); vereist door PDF/X en gebruikt door PDF/A.
- PDF/X — de op ISO 15930 gebaseerde druk-uitwisselingsprofielfamilie van PDF; een PDF/X-bestand moet een output intent dragen die zijn beoogde drukconditie benoemt.