Schriften, deren Buchstaben ein Byte kosten

Erstellen Sie eine Schrift mit Ein-Byte-Codes, zugeschnitten auf Ihren tatsächlichen Text: eine leichtere Seite und ein Wortabstand mit eigenem Code.

In einem echten PDF ansehen

Eine Seite, deren Buchstaben je ein Byte kosten

Dieselben drei Zeilen zweimal geschrieben — auf gewöhnliche Weise, dann mit jedem Buchstaben als einzelnem Byte —, und die Seite gibt an, was jedes der beiden ausmachte. Der kurze Weg lässt außerdem den Abstand zwischen den Wörtern einer Zeile einstellen, was der gewöhnliche nicht tut.

Das PDF öffnen Das vollständige Beispiel ansehen

Auch zu sehen in: Durchgestrichene Preise, ein Schatten hinter dem Titel

Zusammenfassung

In einem PDF wird jeder auf einer Seite gezeichnete Buchstabe als Zahl geschrieben, und normalerweise braucht diese Zahl zwei Bytes. Wenn Sie vorab sagen, welche Buchstaben Ihr Dokument verwenden wird — und ein Dokument verwendet weit weniger, als eine Schrift enthält —, kann jedem davon stattdessen eine kleine Zahl gegeben werden, die in ein Byte passt. Der zweite Gewinn ist weniger offensichtlich: Die Einstellung, die Wörter auseinanderschiebt, um einen Absatz auszurichten, wirkt auf den Code des Leerzeichens, und diesen Code gibt es nur in dieser Form.

Technisch

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

simple_fonts baut aus einer bereits deklarierten Schrift eine einfache Ein-Byte-Schrift /Subtype /TrueType, die Elemente über Codes statt über den Glyphenindex ansprechen. fitted_to ist der Text, auf den die /Differences-Kodierung zugeschnitten wird: Jedes Zeichen daraus, das die Schrift zeichnen kann, erhält einen Code, wobei das Leerzeichen 32 behält und der Rest den niedrigsten freien Code ab 33 aufwärts erhält, in der Reihenfolge ihres Auftretens. Ein Zeichen, das dieser Text auslässt, kann die Schrift nicht zeichnen, die Zeichenkette muss also jeden Buchstaben, jeden Akzent und jedes Zeichen enthalten, das das Dokument über diesen Namen zeigen wird. Die Quelle muss eine Schrift mit einer Datei dahinter sein — eine, die die Anfrage einbettet, eine eigene des Kunden, eine aus dem Schriftenspeicher — und nie eine der vierzehn Standardschriften, die außerhalb des Dokuments reisen und daher nichts umzukodieren haben. Daraus ergeben sich zwei Vorteile: Ein Buchstabe kostet ein Byte Seitenstream statt zwei, und der Wortabstand hat einen Code, den er erreichen kann — bei Zwei-Byte-Codes hat die Einstellung, die den Leerraum verbreitert, überhaupt keine Wirkung.

Anfrageschema

  • simple_fonts — Array, optional, standardmäßig leer.
  • simple_fonts[].name — Zeichenkette, erforderlich. Der Name, unter dem Elemente mit dieser Schrift zeichnen.
  • simple_fonts[].from — Zeichenkette, erforderlich. Der Name der Schrift, aus der sie gebaut wird: eine, die die Anfrage in fonts einbettet, eine aus dem Schriftenspeicher. Nie eine der standard_fonts: Diese vierzehn Schriften reisen außerhalb der Datei, es gibt also keine Datei, der Ein-Byte-Codes gegeben werden könnten.
  • simple_fonts[].fitted_to — Zeichenkette, optional. Der Text, auf den die Codes zugeschnitten werden. Jedes Zeichen daraus, das die Schrift zeichnen kann, erhält einen Code, wobei das Leerzeichen 32 behält und der Rest den niedrigsten freien Code ab 33 aufwärts erhält; ein Zeichen, das er auslässt, kann über diesen Namen nicht gezeichnet werden. Nie neben code_page oder slots angegeben.
  • simple_fonts[].code_page — Zeichenkette, optional. Eine Tabelle von Ein-Byte-Codes, die die Anzeigesoftware bereits kennt, benannt nach ihrer Norm; ein Zeichen, für das sie keinen Code hat, kann über diesen Namen nicht gezeichnet werden. Fehlt sie und fehlt auch fitted_to, ist jeder Code frei außer dem Leerzeichen bei 32. Dreißig Werte: win_ansi, die Windows-Codepage, über die die zwölf Textschnitte der vierzehn Standardschriften angesprochen werden; standard, die, auf die ein PostScript-Programm zurückgreift; pdf_doc, die, in der die Zeichenketten außerhalb des Seitentextes geschrieben werden; die Teile von ISO 8859, iso8859_1, iso8859_2, iso8859_3, iso8859_4, iso8859_5, iso8859_6, iso8859_7, iso8859_8, iso8859_9, iso8859_10, iso8859_11, iso8859_13, iso8859_14, iso8859_15 und iso8859_16; die Windows-Codepages windows874, windows1250, windows1251, windows1253, windows1254, windows1255, windows1256, windows1257 und windows1258; mac_roman; und ibm037 und ibm500, zwei EBCDIC-Seiten, deren Leerzeichen bei 64 liegt, wo der Wortabstand keinen Code erreicht.
  • simple_fonts[].slots — Array, optional, standardmäßig leer. Zeichen an Codes Ihrer Wahl, über der Codepage oder über freien Codes, jedes ein Objekt aus code, einer Ganzzahl von 1 bis 255 außer 32, und character, einer Zeichenkette aus einem Zeichen. Jedes ist ein Eintrag, den das Dokument ausschreibt; Code 0, Code 32 und ein doppelt genannter Code werden abgelehnt.

Geltungsbereich: der deklarierte Name und nur er. Die Schrift, aus der sie gebaut ist, bleibt unter ihrem eigenen Namen unverändert erreichbar. Ein Dokument kann beide enthalten, und ein Element wählt die, die es nennt.

Eine vollständige Anfrage, die ein PDF erzeugt

Ein Name unten steht für eine Schriftdatei: Setzen Sie die kodierte Datei an seine Stelle oder senden Sie die Datei selbst neben der Beschreibung, als mitgelieferten Teil desselben Aufrufs. Eine Seite trägt eine echte, bereits kodierte Schrift, und ihre Anfrage wird unverändert gesendet.

{
  "fonts": [{ "name": "body", "data": "PASTE_THE_FONT_FILE_BASE64_HERE" }],
  "simple_fonts": [
    {
      "name": "coded",
      "from": "body",
      "fitted_to": "One byte a letter, and the file says which."
    },
    { "name": "latin", "from": "body", "code_page": "win_ansi" }
  ],
  "items": [
    {
      "type": "text",
      "rect": { "llx": 72, "lly": 700, "urx": 523, "ury": 740 },
      "content": ["One byte a letter"],
      "font": "coded",
      "font_size": 18
    },
    {
      "type": "text",
      "rect": { "llx": 72, "lly": 650, "urx": 523, "ury": 690 },
      "content": ["One byte a letter"],
      "font": "latin",
      "font_size": 18
    }
  ]
}

Die Zeile, die es sendet, in drei Sprachen

Die Schriften

Eine Schrift im Dokument mitnehmen Die älteren Type-1-Schriftprogramme Die vierzehn Schriften, die jede Anzeigesoftware besitzt Die typografischen Feinheiten einer Schrift Eine Schrift, deren Buchstaben Sie selbst zeichnen Eine Ersatzschrift für die selteneren Zeichen Schriften, deren Zeichen in Farbe erscheinen Schriften, die das Dokument nennt, ohne sie zu enthalten Eine Schrift, deren Hersteller ihre Einbettung verbieten Vollständig eingebettete Schriften

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