Ebenen, die die Anzeigesoftware zeigt oder ausblendet

Ordnen Sie das Gezeichnete benannten Ebenen zu, mit einem Klick ein- oder ausgeblendet und von der Anzeigesoftware je nach Vergrößerung oder Sprache gezeigt.

In einem echten PDF ansehen

Eine Zeichnung, und jeder Leser sieht seine eigene

Derselbe Grundriss auf sechs Ebenen, einzeln ein- und ausgeblendet: Möbel und Abstände eingeblendet, die internen Notizen ausgeblendet, bis sie gebraucht werden, und ein Entwurfs-Wasserzeichen für den Bildschirm und nicht für das Papier.

Das PDF öffnen Das vollständige Beispiel ansehen

Auch zu sehen in: Ein Plan, der zeigt, was sich lesen lässt · Interne und externe Links · Ein interaktives Formular

Zusammenfassung

Ein Architekt arbeitet mit übereinandergelegten transparenten Blättern: die Wände auf einem, die Möbel auf einem anderen, die Maße auf einem dritten. Hebt man eines ab, verschwindet es aus dem Blick, und hier ist es genau dieselbe Geste. Sie können auch festlegen, dass eine Ebene am Bildschirm erscheint, aber nicht gedruckt wird — etwa ein Entwurfs-Wasserzeichen. Und eine Ebene kann sich selbst melden: Die feinen Maße eines Plans erscheinen, sobald ein Leser nah genug ist, um sie zu lesen, und eine zweimal, in zwei Sprachen geschriebene Legende zeigt jedem Leser die, auf die er sein Programm eingestellt hat. Zusammengehörige Ebenen — die Wände, das Dach und die Öffnungen eines Gebäudes — werden unter einer Überschrift gesammelt, die die Seitenleiste als eine Gruppe zeigt, die ein Leser mit einem Klick zuklappt.

Technisch

Auf der obersten Ebene einer Anfrage geschrieben, unter "layers"

layers schreibt eine /OCG pro Ebene in /OCProperties, jede unter dem Namen, auf dem ein Element nach eigener Angabe gezeichnet wird, und umschließt die auf einer Ebene gezeichneten Markierungen im Inhaltsstream, sodass die Anzeigesoftware sie gemeinsam umschaltet. Die Anzeigesoftware listet sie in ihrer Seitenleiste auf, in der Reihenfolge, in der die Anfrage sie deklariert, und blendet alles auf einer davon auf einmal ein oder aus. Eine Ebene mit einer heading wird darunter statt für sich aufgelistet: /Order enthält dann ein verschachteltes Array, das mit dieser Überschrift beginnt und dort steht, wo die erste Ebene mit dieser Überschrift deklariert wurde, mit jeder Ebene derselben Überschrift darin. /Usage enthält den Rest. Bildschirmanzeige und Druck sind getrennt: Gegensätzliche Antworten ergeben eine Ebene, die nur je angesehen oder nur je gedruckt wird. Eine Ebene kann sich auch ohne die Seitenleiste zeigen: Ein zoom zeigt sie zwischen zwei Vergrößerungen, und eine language zeigt sie einer auf diese Sprache eingestellten Anzeigesoftware und blendet sie gegenüber den Ebenen jeder anderen aus. Eine Ebene, die die Seitenleiste nicht umschalten lässt, ist locked und beginnt weiterhin dort, wo visible sie hinsetzt. Vier Einträge sagen, was die Ebene ist, statt wann sie sich zeigt: intent wird neben den Namen geschrieben, an der Gruppe selbst, und der Satz, unter dem sich das Dokument öffnet, enthält die Liste der Intents, unter denen er gelesen wird; made_by, purpose und role sind drei weitere Rubriken von /Usage, wobei die zweite neben dem Druckzustand im selben Eintrag geschrieben wird.

Anfrageschema

  • layers — Array, optional, standardmäßig leer.
  • layers[].name — Zeichenkette, erforderlich. Der Name, unter dem Elemente diese Ebene nennen, und der Name, den die Anzeigesoftware in ihrer Seitenleiste zeigt.
  • layers[].visible — boolescher Wert, optional. Ob die Ebene eingeblendet beginnt. Fehlt er, beginnt sie eingeblendet.
  • layers[].printed — boolescher Wert, optional. Ob der Druck die Ebene zeigt, was auch immer die Seitenleiste sagt. Fehlt er, folgt der Druck der Seitenleiste.
  • layers[].on_screen — boolescher Wert, optional. Ob die Bildschirmanzeige des Dokuments die Ebene zeigt, was auch immer die Seitenleiste sagt. Fehlt er, folgt der Bildschirm der Seitenleiste.
  • layers[].locked — boolescher Wert, optional, standardmäßig false. Ob die Anzeigesoftware sich weigert, die Ebene in ihrer Seitenleiste umzuschalten. Eine gesperrte Ebene behält ihren Eintrag, der den Anfangszustand zeigt, und beginnt weiterhin dort, wo visible sie hinsetzt.
  • layers[].zoom — Objekt, optional. Die Vergrößerungen, zwischen denen sich die Ebene zeigt, was auch immer die Seitenleiste sagt. Fehlt es, wird sie bei jeder Vergrößerung gezeigt, und ein Objekt, das keine der beiden Grenzen nennt, wird abgelehnt.
  • layers[].zoom.from — Zahl, optional. Der Vergrößerungsfaktor, ab dem die Ebene gezeigt wird, dieser eingeschlossen. Fehlt er, gibt es keine Untergrenze, also 0.
  • layers[].zoom.to — Zahl, optional. Der Vergrößerungsfaktor, unterhalb dessen die Ebene gezeigt wird, dieser ausgeschlossen. Fehlt er, gibt es keine Obergrenze. Ein Paar, das nichts erfüllen kann — ein from gleich oder über to oder ein from unter null —, wird abgelehnt.
  • layers[].language — Zeichenkette, optional, standardmäßig ohne Sprache. Ein Sprach-Tag, fr-FR oder en-GB. Eine auf diese Sprache eingestellte Anzeigesoftware zeigt diese Ebene und blendet die Ebenen jeder anderen Sprache aus; so trägt ein Blatt seinen Wortlaut zweimal und zeigt einen davon.
  • layers[].preferred — boolescher Wert, optional, standardmäßig false. Ob dies die Ebene ist, auf die die Anzeigesoftware zurückgreift, wenn keine Ebene genau die eingestellte Sprache angibt. Ihn ohne language anzugeben wird abgelehnt.
  • layers[].heading — Zeichenkette, optional, standardmäßig ohne Überschrift. Die Überschrift, unter der die Anzeigesoftware die Ebene in ihrer Seitenleiste einordnet. Jede unter derselben Überschrift deklarierte Ebene wird darunter gezeigt, als eine Gruppe, die ein Leser auf- und zuklappt, und die Gruppe steht dort, wo die erste Ebene mit dieser Überschrift deklariert wurde. Eine Ebene ohne Überschrift steht für sich auf der obersten Ebene der Seitenleiste.
  • layers[].intent — Zeichenkette, optional, standardmäßig view. Ob die Ebene Inhalt des Dokuments trägt, view, oder eine Hilfe für den, der es erstellt hat, design: ein Raster, eine Hilfslinie, ein Randkasten. Die Anzeigesoftware wendet nur die Ebenen an, deren Intent der Satz nennt, unter dem sie liest. Der Satz, unter dem sich ein Dokument öffnet, nennt allein den Betrachtungs-Intent, wie es die PDF-Norm (ISO 32000) von ihm verlangt; eine design-Ebene wird daher aus einem layer_configurations-Satz umgeschaltet: Jeder davon nennt beide Intents, wenn eine Ebene eine design-Ebene ist.
  • layers[].made_by — Objekt, optional. Das Programm, das die Ebene erstellt hat, und die Art der Arbeit, die sie enthält, gemeinsam angegeben; das eine ohne das andere wird abgelehnt.
  • layers[].made_by.application — Zeichenkette, erforderlich. Das Programm, unter dem Namen, mit dem es sich selbst bezeichnet.
  • layers[].made_by.work — Zeichenkette, erforderlich. Die Art der Arbeit, die die Ebene enthält: artwork, der Inhalt einer Grafikdesign- oder Satzanwendung, oder technical, der Inhalt einer technischen Konstruktion wie eines Bauplans oder eines Schaltplans.
  • layers[].purpose — Zeichenkette, optional. Was die Ebene auf dem gedruckten Bogen ist: watermark, ein Wasserzeichen über oder unter dem, was die Seite sagt; trapping, die Überfüllung, die die Druckmaschine braucht, wo zwei Druckfarben aneinanderstoßen; oder printers_marks, was die Druckerei liest statt des Lesers. Getrennt von printed angegeben: Zu sagen, was eine Ebene ist, sagt nichts darüber, ob sie gedruckt wird, und eine Ebene, die nur sagt, was sie ist, wird von keinem Druckereignis umgeschaltet.
  • layers[].role — Zeichenkette, optional. Welchen Teil der Seite die Ebene enthält: header_footer (ein lebender Kolumnentitel oder Seitenfuß), background (hinter dem gezeichnet, was die Seite sagt), foreground (darüber gezeichnet) oder logo. Ein Programm, das eine Seite zerlegt, liest sie, um das Entnommene wieder zusammenzusetzen.
  • Ein Element liegt über seinen Schlüssel layer auf einer Ebene, mit dem hier deklarierten Namen. Ein Element ohne layer ist immer da, unter jeder Ebene.
  • Ebenen erfordern mindestens PDF 1.5.
  • Ein Dokument, das eine archive-Norm angibt, lehnt eine Ebene ab, die printed, on_screen, zoom oder language angibt: Eine Archivdatei überlässt diese Entscheidung der Anzeigesoftware. Die Ebene selbst ist in Ordnung, ebenso locked, das nichts auf der Seite davon abhängig macht, wofür die Seite betrachtet wird.
  • layers[].listed — boolescher Wert, optional, standardmäßig true. Ob die Ebenenleiste der Anzeigesoftware die Ebene auflistet. Eine aus der Seitenleiste herausgehaltene Ebene wird trotzdem so ein- oder ausgeblendet, wie sie beginnt, durch eine Regel oder eine Schaltfläche umgeschaltet und gedruckt oder angezeigt, wo printed und on_screen es sagen; nur der Leser selbst kommt nicht an sie heran.
  • layers[].exported — boolescher Wert, optional. Ob beim Export des Dokuments in ein anderes Format die Ebene erhalten bleibt, was auch immer die Seitenleiste sagt: false ist eine Ebene mit Prüfanmerkungen, die am Bildschirm gezeigt und in der weitergegebenen Kopie weggelassen wird. Fehlt er, folgt der Export der Seitenleiste.
  • layers[].metadata — Objekt, optional. Was die Ebene ist, für ein Programm, das die Datei liest — eine Stanzlinie, ein Lack, ein weißer Unterdruck —, in einem eigenen Paket: {"facts": {…}}, geschrieben aus den Feldern, die das eigene metadata des Dokuments annimmt, oder {"packet": "part name"}, ein als Teil mitgeliefertes und unverändert übernommenes Paket. Der name der Ebene bleibt das, was ein Mensch in der Seitenleiste liest.

Eine vollständige Anfrage, die ein PDF erzeugt

{
  "layers": [
    {
      "name": "Dimensions",
      "made_by": { "application": "Plan Studio", "work": "technical" }
    },
    { "name": "Draft", "on_screen": true, "printed": false },
    { "name": "Crop marks", "locked": true },
    { "name": "Fine print", "zoom": { "from": 2 } },
    {
      "name": "French wording",
      "language": "fr-FR",
      "heading": "Wording"
    },
    {
      "name": "English wording",
      "language": "en-GB",
      "preferred": true,
      "heading": "Wording"
    },
    { "name": "Grid", "intent": "design" },
    { "name": "Draft mark", "purpose": "watermark" },
    { "name": "Badge", "role": "logo" }
  ],
  "standard_fonts": [{ "name": "sans", "face": "helvetica" }],
  "items": [
    {
      "type": "rect",
      "rect": { "llx": 80, "lly": 560, "urx": 380, "ury": 760 },
      "stroke": { "width": 2 }
    },
    {
      "type": "text",
      "rect": { "llx": 80, "lly": 540, "urx": 380, "ury": 556 },
      "content": ["300 by 200"],
      "font": "sans",
      "font_size": 10,
      "layer": "Dimensions"
    },
    {
      "type": "text",
      "rect": { "llx": 80, "lly": 700, "urx": 380, "ury": 740 },
      "content": ["DRAFT"],
      "font": "sans",
      "font_size": 36,
      "color": [0.85, 0.85, 0.85],
      "layer": "Draft"
    },
    {
      "type": "text",
      "rect": { "llx": 80, "lly": 520, "urx": 380, "ury": 534 },
      "content": ["Shown from twice the page size upwards"],
      "font": "sans",
      "font_size": 7,
      "layer": "Fine print"
    },
    {
      "type": "text",
      "rect": { "llx": 80, "lly": 480, "urx": 380, "ury": 496 },
      "content": ["Plan du premier etage"],
      "font": "sans",
      "font_size": 11,
      "layer": "French wording"
    },
    {
      "type": "text",
      "rect": { "llx": 80, "lly": 480, "urx": 380, "ury": 496 },
      "content": ["First floor plan"],
      "font": "sans",
      "font_size": 11,
      "layer": "English wording"
    }
  ]
}

Die Zeile, die es sendet, in drei Sprachen

Was gezeichnet wird, und wie es herauskommt

Alles, was sich auf eine Seite zeichnen lässt Das Gewicht der Datei und die Zeit, die sie braucht Die erste Seite, gezeigt, während der Rest ankommt Ein Name, der für mehrere Ebenen zugleich steht Eine einmal gemachte Zeichnung, per Schaltfläche gezeigt Aus SVG-Dateien gelesene Zeichnungen Die Ebenensätze, die die Anzeigesoftware anbietet Ebenen, von denen die Anzeigesoftware jeweils eine zeigt

Wohin als Nächstes

Jeder JSON-Schlüssel einer Anfrage, auf einer Seite Die übrigen einundvierzig Einstellungen einer Anfrage

Die Preise ansehen Die Beispiele ansehen