Einmal deklarierte Zeichnung, beliebig oft platziert

Setzen Sie eine deklarierte Zeichnung beliebig groß an jede Stelle der Seite, ohne dass die Datei sie zweimal trägt.

In einem echten PDF ansehen

Eine Zeichnung, vielfach platziert

Ein als Zeichnung gebautes Namensschild, achtmal platziert, dazu einmal in halber Größe: Die Datei trägt die Zeichnung einmal, wie oft sie auch platziert wird. Eine zweite Seite zeigt ein Schild, das sich um ein Viertel dreht, wo immer es platziert wird, sagt, was es ist, und eine eigene Datei enthält: die Gästeliste.

Das PDF öffnen Das vollständige Beispiel ansehen

Auch zu sehen in: Die Notizen, die ein Programm für sich selbst hinterlässt · Text, der sich an eine Form hält · Eine Zeichnung, und jeder Leser sieht seine eigene

Zusammenfassung

Ein Logo auf hundert Seiten, ein Unterschriftsblock am Fuß jedes Vertrags, ein Zierrahmen um jede Urkunde: Die Form ist immer dieselbe, nur ihr Platz ändert sich. Sie zeichnen sie also einmal, geben ihr einen Namen und sagen danach einfach „diese hier, an diese Stelle“. Hundert Seiten mit demselben Abzeichen wiegen dann kaum mehr als eine. Sie können sie auch drehen oder strecken, ohne etwas neu zu zeichnen.

Technisch

Angefordert mit "type": "drawing"

Ein drawing-Element platziert eine in drawings deklarierte Zeichnung auf der Seite und malt ihr Form-XObject mit Do. Die Zeichnung bringt ihren eigenen Raum und ihren eigenen Kasten mit; sie zu platzieren heißt anzugeben, wo der Ursprung dieses Raums landet, bei x und y in Seitenkoordinaten, und womit er multipliziert wird, also die Matrix, die das Element schreibt. Die Zeichnung wird einmal in die Datei geschrieben, unabhängig von der Anzahl der Platzierungen; so bleibt ein wiederholtes Abzeichen günstig. Eine Platzierung hat dieselbe Reichweite wie jedes andere Element: die Seiten, auf denen sie erscheint, eine Matrix oder eine Drehung, eine Ebene und das Tag, über das der Strukturbaum sie beansprucht — oder artifact, wenn die Zeichnung Beiwerk ist statt etwas, das das Dokument sagt.

Anfrageschema

Erforderliche Schlüssel: drawing, der Name einer in drawings deklarierten Zeichnung; x und y, jeweils eine Zahl oder ein in Anführungszeichen gesetzter Ausdruck, wo der eigene Ursprung der Zeichnung vom linken und vom unteren Seitenrand aus landet. Optionale Schlüssel: scale, eine Zahl, mit der der eigene Raum der Zeichnung multipliziert wird, standardmäßig 1; pages, die ab eins gezählten Seiten, auf denen sie gezeichnet wird, leer für jede Seite, oder eine Regel, die sie auswählt; transform, sechs Zahlen [a, b, c, d, e, f]; rotate, Grad gegen den Uhrzeigersinn um die Mitte ihres eigenen Kastens; layer, der Name einer deklarierten Ebene; tag und mark, zusammen angegeben, die markierten Inhalt eröffnen, den der Strukturbaum beansprucht; artifact, wessen Beiwerk die Zeichnung ist, einer der Werte header (ein Kolumnentitel), footer (ein Seitenfuß, eine Seitenzahl), watermark (über oder unter das gelegt, was die Seite sagt), pagination (was zur Seitennummerierung gehört, ohne eines dieser drei zu sein), layout (Linien, Kästen, Schattierung: was trennt, was die Seite sagt, statt selbst etwas zu sagen), page (was zur Herstellung des Bogens gehört: Schnittmarken, Passkreuze, Farbkontrollstreifen) oder background (was hinter dem gezeichnet wird, was die Seite sagt). Gegenseitige Ablehnungen: transform zusammen mit rotate; artifact zusammen mit tag; ein drawing, das nichts nennt, was die Anfrage deklariert hat. Eine deklarierte Zeichnung nimmt name an, box (ein Objekt aus llx, lly, urx und ury, das den erhaltenen Teil ihres eigenen Raums begrenzt), items, die Formen, aus denen sie besteht, eine optionale matrix aus sechs Zahlen und eine optionale layer, den Namen einer deklarierten Ebene, zu der die ganze Zeichnung gehört — eine Anzeigesoftware, die die Ebene ausblendet, blendet die Zeichnung überall aus, wo sie gezeigt wird, auch dort, wohin kein markierter Abschnitt reicht, etwa als Bild einer Schaltfläche. Eine Zeichnung, die ein Grafikzustand als weiche Maske verwendet, trägt keine Ebene. Unter ihren Formen enthält allein eine Zeichnung einen shaped_text-Block: Text, gesetzt in eine shape, die kein Rechteck sein muss — rect oder ellipse, jeweils ein Objekt aus llx, lly, urx und ury, oder polygon, ein Array aus drei oder mehr Ecken, jede [x, y] —, wobei seine Zeilen um jedes Rechteck von around geschnitten werden, einem Array von Objekten aus llx, lly, urx, ury und gap, dem rundum freigehaltenen Raum. Er nimmt content, font, font_size und jede Einstellung eines Fließtextblocks an, darunter outline, die Kontur um seine Buchstaben, und narrowest, das schmalste Stück einer Zeile in Punkt; die Wörter, die nicht passen, werden weggelassen. artifact nennt außerdem vier weitere Arten: page_number, eine für sich stehende Seitenzahl, getrennt von Kolumnentitel oder Seitenfuß; bates, eine auf jede Seite eines Dokumentensatzes gestempelte Nummer, damit jede Seite des Satzes zitiert werden kann; line_number, eine im Rand neben der gezählten Zeile gesetzte Nummer; redaction, die Markierung an der Stelle, an der etwas entfernt wurde. Diese vier erfordern PDF 2.0, das die Anfrage unter version deklariert. Anstelle des Wortes nimmt artifact ein Objekt an: kind, erforderlich, eines dieser elf Wörter; attached, ein Array aus top, bottom, left und right, jedes einmal genannt, die Seitenränder, an denen es hängt, nur von Seitennummerierung und Hintergrund angenommen; bbox, der Kasten, den es abdeckt, in Punkt der Seite selbst, ein Objekt aus llx, lly, urx und ury. Jedes Element, das artifact annimmt, nimmt beide Formen an.

Eine vollständige Anfrage, die ein PDF erzeugt

{
  "standard_fonts": [{ "name": "sans", "face": "helvetica" }],
  "drawings": [
    {
      "name": "badge",
      "box": { "llx": 0, "lly": 0, "urx": 60, "ury": 60 },
      "items": [
        {
          "type": "rect",
          "rect": { "llx": 0, "lly": 0, "urx": 60, "ury": 60 },
          "fill": [0.11, 0.31, 0.55]
        },
        {
          "type": "line",
          "from": { "x": 12, "y": 30 },
          "to": { "x": 48, "y": 30 },
          "stroke": { "width": 3, "color": [1, 1, 1] }
        }
      ]
    },
    {
      "name": "notice",
      "box": { "llx": 0, "lly": 0, "urx": 160, "ury": 160 },
      "items": [
        {
          "type": "shaped_text",
          "shape": { "ellipse": { "llx": 0, "lly": 0, "urx": 160, "ury": 160 } },
          "around": [{ "llx": 60, "lly": 60, "urx": 100, "ury": 100, "gap": 4 }],
          "content": "Each line keeps inside the circle and round the square.",
          "font": "sans",
          "font_size": 9
        }
      ]
    }
  ],
  "items": [
    { "type": "drawing", "drawing": "badge", "x": 72, "y": 700 },
    { "type": "drawing", "drawing": "notice", "x": 72, "y": 480 },
    {
      "type": "drawing",
      "drawing": "badge",
      "x": 160,
      "y": 700,
      "scale": 0.5,
      "artifact": { "kind": "pagination", "attached": ["top"] }
    }
  ]
}

Die Zeile, die es sendet, in drei Sprachen

Formen

Ein freier Pfad: Linien, Kurven und gefüllte Formen Ein Rechteck, gefüllt oder umrandet Eine gerade Linie zwischen zwei Punkten

Wohin als Nächstes

Jeder JSON-Schlüssel einer Anfrage, auf einer Seite Die übrigen zweiundzwanzig Dinge, die Sie zeichnen können

Die Preise ansehen Die Beispiele ansehen