Deckkraft, Mischen und was eine Druckmaschine verlangt
Deklarieren Sie eine Maleinstellung — Deckkraft, Füllmethode, Überdrucken, Raster — und wenden Sie sie dann über ihren Namen auf Formen an.
In einem echten PDF ansehen
Halb durchsichtige Füllungen, die sich überlappen und mischen, ein orangefarbenes Quadrat über einem blauen Balken auf vier verschiedene Arten, Farben zu mischen, und eine Zeile sich überlappender Buchstaben, auf zwei Arten gemalt.
Das PDF öffnen Das vollständige Beispiel ansehen
Auch zu sehen in: Mit einem Verlauf gefüllter Text und Formen · Eine Farbe, durch sechs Schablonen gesehen · An ein Rechteck angepasste Stempel
Zusammenfassung
Ein Textmarker lässt den Text darunter durchscheinen: Die Farbe verdeckt nicht, sie mischt. Hier gibt es sechzehn Arten des Mischens, dieselben wie in Zeichensoftware — Multiplizieren, Aufhellen, Differenz —, und jede lässt sich auf halbe Stärke oder auf ein Zehntel herunterregeln, sodass eine Form über der Seite liegt statt auf ihr. Dieselbe Einstellung gibt an, was eine Druckerei verlangt und kein Bildschirm je zeigt: ob eine Druckfarbe über der bereits auf dem Bogen liegenden liegt oder sie löscht, wie fein das Punktraster ist und wie es gedreht ist, wie Farben, die die Druckmaschine nicht darstellen kann, in das überführt werden, was sie kann, und die Kurve, durch die der Ton auf dem Weg zur Maschine gebogen wird.
Technisch
Auf der obersten Ebene einer Anfrage geschrieben, unter
"graphics_states"
graphics_states deklariert jeden /ExtGState, den das Dokument für sich selbst definiert, unter dem Namen, unter dem eine gezeichnete Form ihn anwendet: die Deckkraft für das Füllen, die für die Kontur, die Füllmethode, die Maske, durch die das Gemalte gesehen wird, worauf sich diese Deckkräfte und diese Maske beziehen, was die Buchstaben eines Textblocks miteinander tun, wo sie sich überlappen, das Überdrucken und was eine Komponente null dabei bedeutet, den Rendering-Intent und den Schwarzpunkt, die Konturanpassung, wie fein eine Kurve und ein Verlauf aufgetragen werden, die Transferkurve, das Raster und wo es verankert ist. Das Dictionary wird einmal geschrieben, wie viele Formen es auch anwenden, und es gilt so lange wie die Form, die es genannt hat, und nicht länger. Nur was es nennt, wird geschrieben: Ein Zustand, der eine Deckkraft und sonst nichts nennt, lässt alles andere unverändert.
Anfrageschema
-
graphics_states— Array, optional, standardmäßig leer. -
graphics_states[].name— Zeichenkette, erforderlich. Der Name, unter dem Elemente diesen Zustand anwenden. -
graphics_states[].state— Objekt, erforderlich. -
state.initial— boolescher Wert, optional, standardmäßigfalse. Ob der Zustand von dem ausgeht, in dem eine Seite beginnt, mit jeder Einstellung, die er trägt, auf ihrem Anfangswert — beide Deckkräfte auf eins, die Füllmethodenormal, keine Maske, kein Überdrucken, der Intentrelative_colorimetric, eine Flachheit von eins, die eigene Transferkurve der Seite und Text, der sich selbst ausspart —, statt von nichts. Was der Eintrag sonst angibt, wird darübergelegt. Einpdf_page-Element nennt einen solchen Zustand infrom_defaults. -
state.fill_alpha— Zahl von 0 bis 1, optional. Die Deckkraft, mit der jede Füllung gemalt wird: 0 lässt alles durch, 1 deckt. -
state.stroke_alpha— Zahl von 0 bis 1, optional. Die Deckkraft, mit der jede Kontur gemalt wird. Füllung und Kontur werden getrennt angegeben: Eine außen halb durchsichtige und innen deckende Form nennt beide. -
state.blend_mode— Zeichenkette, optional. Sechzehn Werte:normal,multiply,screen,overlay,darken,lighten,color_dodge,color_burn,hard_light,soft_light,difference,exclusion,hue,saturation,color,luminosity. Die ersten zwölf mischen jeden Kanal für sich, die letzten vier nehmen jeweils eine ganze Farbe. -
state.alpha_is_shape— boolescher Wert, optional. Ob die beiden Deckkräfte und die Maske angeben, wie viel eines Punkts bedeckt ist, statt wie deckend die Farbe darauf ist. Eine direkt auf die Seite gemalte Form sieht in beiden Fällen gleich aus. Die beiden Lesarten trennen sich in einer Aussparungsgruppe: Bei false löscht eine Deckkraft von 0,4 aus, was eine frühere Markierung aufgetragen hat, und malt stattdessen vier Zehntel ihrer Farbe; bei true behält eine Bedeckung von 0,4 sechs Zehntel der früheren Markierung. -
state.text_knockout— boolescher Wert, optional. Ob die Buchstaben eines Textobjekts als ein einziges Objekt verrechnet werden: Bei true spart ein über einen früheren Buchstaben desselben Textobjekts gelegter Buchstabe diesen aus, und die Überlappung wird einmal gemalt; bei false wird jeder Buchstabe für sich verrechnet, und die Überlappung behält beide. Eintext-Block schreibt seine Buchstaben als ein Textobjekt, seinen Schatten als ein weiteres und, wenn getaggt, ein Textobjekt pro Absatz; eintext_pathschreibt jeden Buchstaben als eigenes Textobjekt. -
state.overprint— boolescher Wert, optional. Ob eine Kontur und eine Füllung beide die bereits auf dem Bogen liegenden Druckfarben an Ort und Stelle lassen, statt sie zu löschen. Ihn nebenstate.stroke_overprintoderstate.fill_overprintzu nennen wird abgelehnt: Beide sagen dasselbe zweimal. -
state.stroke_overprint— boolescher Wert, optional. Ob eine Kontur die bereits auf dem Bogen liegenden Druckfarben an Ort und Stelle lässt. -
state.fill_overprint— boolescher Wert, optional. Ob eine Füllung dies tut. Nennen Sie diese beiden, wo eine Form auf der einen Seite überdruckt und auf der anderen nicht, undstate.overprint, wo sie es auf beiden tut. -
state.overprint_mode— Zeichenkette, optional. Was eine Komponente null beim Überdrucken bedeutet. Zwei Werte:erase_zero, jede Komponente wird so aufgetragen, wie sie angegeben ist, eine Null löscht also diese Druckfarbe vom Bogen;keep_zero, eine Null lässt diese Druckfarbe so, wie sie vorgefunden wurde, und nur die anderen Komponenten werden aufgetragen.keep_zerolässt schwarze Schrift ohne Cyan, Magenta oder Gelb einen farbigen Grund überdrucken, statt ein Loch hineinzustanzen. -
state.rendering_intent— Zeichenkette, optional. Wie Farben, die das Ziel nicht darstellen kann, in das überführt werden, was es kann. Vier Werte:absolute_colorimetric, jede Farbe wird genau beibehalten, Weiß eingeschlossen, und was nicht passt, wird abgeschnitten;relative_colorimetric, jede Farbe wird genau beibehalten, aber alle werden so verschoben, dass das Weiß des Bildes das Weiß des Papiers ist;saturation, Farben bleiben leuchtend statt genau, was ein Diagramm braucht;perceptual, jede Farbe wird verschoben, auch die passenden, sodass die Verhältnisse zwischen ihnen erhalten bleiben, was ein Foto braucht. -
state.black_point_compensation— Zeichenkette, optional. Ob eine Umrechnung den dunkelsten Ton der Quelle berücksichtigt. Drei Werte:reader, die Anzeigesoftware entscheidet, was auch gilt, wenn nichts angegeben ist;on, der dunkelste Ton wird berücksichtigt;off, er bleibt außen vor. -
state.stroke_adjustment— boolescher Wert, optional. Ob eine Kontur, die zu dünn ist, um ein ganzes Gerätepixel zu bedecken, auf eines verbreitert wird, statt zu verblassen. So bleibt eine Haarlinie über eine ganze Seite gleichmäßig. -
state.flatness— Zahl von 0 bis 100, optional. Wie weit eine als gerade Segmente aufgetragene Kurve höchstens von der Kurve selbst abweichen darf, in Gerätepixeln. 0 verlangt vom Gerät seinen eigenen Wert; eine kleinere Zahl ergibt eine glattere Kurve und mehr aufzutragende Segmente. Eine Zahl außerhalb dieses Bereichs wird abgelehnt,400. -
state.smoothness— Zahl von 0 bis 1, optional. Der größte Fehler, mit dem ein Verlauf aufgetragen werden darf, als Bruchteil des Bereichs einer Farbkomponente. Eine kleinere Zahl ergibt einen feineren Verlauf und mehr Zeit, die das Gerät mit dem Auftragen verbringt. Eine Zahl außerhalb dieses Bereichs wird abgelehnt,400. -
state.mask— Objekt, optional. Eine deklarierte Zeichnung, getrennt von der Seite verrechnet und als Bedeckung gelesen statt angezeigt: Wo sie alles durchlässt, wird das, was der Zustand malt, vollständig aufgetragen; wo sie alles sperrt, nichts davon. Vier Schlüssel:state.mask.drawing— Zeichenkette, erforderlich. Der Name der deklarierten Zeichnung, aus der die Maske besteht.state.mask.read— Zeichenkette, optional, standardmäßigluminosity. Was von dieser Zeichnung abgelesen wird:luminosity, wie hell sie herauskam, wobei Weiß alles durchlässt und Schwarz alles sperrt; oderalpha, wie deckend sie herauskam, gleich in welcher Farbe sie gemalt wurde. Eine mit halber Deckkraft schwarz gemalte Form ist dunkel und halb durchsichtig, die beiden Antworten unterscheiden sich also.state.mask.space— Zeichenkette, optional, einer der Wertegray,rgbodercmyk. Der Gerätefarbraum, in dem die Zeichnung für eine nach Helligkeit gelesene Maske verrechnet wird. Fehlt er, wird sie in den drei Lichtfarben verrechnet.state.mask.backdrop— Array von Zahlen, optional, eine pro Komponente vonstate.mask.space. Die Farbe, als die alles außerhalb des Kastens der Zeichnung zählt. Fehlt es, bleibt sie schwarz, was bei einer nach Helligkeit gelesenen Maske alles außerhalb dieses Kastens sperrt. Eine nach Deckkraft gelesene Maske ignoriert es.state.mask.inverted— boolescher Wert, optional, standardmäßig false. Ob die Bedeckung umgekehrt wird, sodass das, was die Zeichnung durchlässt, gesperrt und das, was sie sperrt, durchgelassen wird.state.mask.transfer— eine Funktion einer Zahl, optional, die Kurve, durch die die Bedeckung geführt wird; sie nebeninvertedzu nennen wird abgelehnt.
-
state.transfer— optional. Die Kurve, durch die der Ton, den eine Farbe verlangt, auf dem Weg zu dem Gerät, auf dem er aufgetragen wird, gebogen wird. Die Kurve bildet 0 bis 1 auf sich selbst ab und wird allein vom Gerät gelesen: Auf einem Bildschirm ist nichts davon zu sehen. Jede Kurve ist dasselbe Funktionsobjekt, auf dem ein Verlauf aufbaut. Drei Formen:"page"— die Kurve, mit der die Seite begann, unverändert beibehalten.{"every": {…}}— eine Kurve, für jede Prozessfarbe gelesen.{"per_ink": [{…}, {…}, {…}, {…}]}— vier Kurven, in der Reihenfolge Cyan, Magenta, Gelb, Schwarz.
-
state.halftone— optional. Das Raster, durch das ein Ton aufgetragen wird. Auf einem Bildschirm ist davon nichts zu sehen. Zwei Formen:{"every": {…}}— ein Raster, durch das jede Druckfarbe aufgetragen wird.{"per_ink": {"inks": […], "default": {…}}}—inks, ein Array mit einem Eintrag pro benannter Druckfarbe, jeder mit einemcolorant, dem Namen der Druckfarbe, wie die Druckerei sie kennt und wie einseparation-Farbraum sie angibt, und einemscreen; unddefault, das Raster, durch das jede nicht in der Liste genannte Druckfarbe aufgetragen wird. Beide sind innerhalb vonper_inkerforderlich.
-
Ein Raster hat vier Schlüssel:
screen.frequency— Zahl, erforderlich. Wie viele Zellen pro Zoll das Punktraster hat.screen.angle— Zahl, erforderlich. Um wie viel Grad gegen den Uhrzeigersinn das Raster gedreht ist. Platten mit demselben Winkel drucken übereinander, daher dreht eine Druckerei jede Druckfarbe auf ihren eigenen Winkel.screen.spot— Zeichenkette, erforderlich. Die Form, zu der ein Punkt wächst, wenn der Ton dunkler wird.screen.accurate— boolescher Wert, optional, standardmäßigfalse. Ob vom Gerät der präzise Rasteralgorithmus statt des gewöhnlichen verlangt wird.
-
screen.spotnimmt einen von einundzwanzig Werten an. Runde Punkte:simple_dot,inverted_simple_dot,double_dot,inverted_double_dot,cosine_dot,double,inverted_double,round. Linien:line,line_x,line_y. Ovale:ellipse,ellipse_a,inverted_ellipse_a,ellipse_b,ellipse_c,inverted_ellipse_c. Eckige Formen:square,cross,rhomboid,diamond. Ein Name, der auf einen Buchstaben endet, ist eine zweite, dritte oder vierte ovale Form; ein Name, der mitinverted_beginnt, wächst von den Ecken der Zelle nach innen statt aus ihrer Mitte heraus. -
state.halftone_origin— Array aus zwei Zahlen, optional. Der Punkt, an dem das Punktraster verankert ist, in den Koordinaten, die dort gelten, wo der Zustand angewendet wird: Das Raster wird von dort aus auf dem Gerät angelegt, und eine spätere Änderung der Koordinaten verschiebt es nicht. Der Eintrag kam mit PDF 2.0, ein Zustand, der ihn nennt, braucht also"version": "2.0", und ein Dokument, das eine ältere angibt, wird abgelehnt,400. -
Ein
path-,rect-,text- odertext_path-Element wendet über seinen Schlüsselgraphics_stateeinen Zustand an. -
state.without_mask— boolescher Wert, optional, standardmäßigfalse. Ob der Zustand jede geltende Maske verwirft, sodass das, was er malt, vollständig gemalt wird: der Zustand, unter dem ein Element gezeichnet wird, das eine maskierte Gruppe verlässt. Nebenstate.maskgenannt, wird er abgelehnt.
Eine vollständige Anfrage, die ein PDF erzeugt
{
"version": "2.0",
"drawings": [
{
"name": "window",
"box": { "llx": 140, "lly": 660, "urx": 280, "ury": 750 },
"items": [
{
"type": "rect",
"rect": { "llx": 140, "lly": 660, "urx": 210, "ury": 750 },
"fill": [1, 1, 1]
}
]
}
],
"graphics_states": [
{
"name": "half",
"state": {
"mask": { "drawing": "window", "read": "alpha" },
"fill_alpha": 0.5,
"blend_mode": "multiply",
"alpha_is_shape": false,
"text_knockout": true,
"rendering_intent": "relative_colorimetric",
"black_point_compensation": "on",
"overprint_mode": "erase_zero",
"flatness": 1,
"smoothness": 0.02,
"transfer": "page",
"halftone": {
"every": { "frequency": 60, "angle": 45, "spot": "round" }
},
"halftone_origin": [12, 24]
}
}
],
"items": [
{
"type": "rect",
"rect": { "llx": 60, "lly": 700, "urx": 200, "ury": 790 },
"fill": [0.85, 0.15, 0.15]
},
{
"type": "rect",
"rect": { "llx": 140, "lly": 660, "urx": 280, "ury": 750 },
"fill": [0.15, 0.3, 0.85],
"graphics_state": "half"
}
]
}
Farbe und wie sie gezeigt wird
Das Gerät, für das die Farben angegeben sind Welche Platte eines separierten Bogens eine Seite ist Das Gerät, für das die Farben einer Seite angegeben sind Farbe über Rot, Grün und Blau hinaus deklarieren Was die nackten Zahlen einer Seite bedeuten Eine Farbe, die in eine andere übergeht Eine Zelle, wiederholt, um eine Form zu füllen Der Farbraum, in dem eine Seite ihre Farben mischt
Wohin als Nächstes
Jeder JSON-Schlüssel einer Anfrage, auf einer Seite Die übrigen einundvierzig Einstellungen einer Anfrage