PostScript enthält Prozedurgruppen (ProcSets). Eine Prozedurgruppe ist ein Wörterbuch, das benannte Prozeduren und Operatoren enthält.Wo werden PostScript-Prozeduren und -Ressourcen gespeichert?
Diese Prozedurgruppen sind in Kategorien unterteilt. Wo werden diese Kategorien gespeichert?
- Wo werden (normale) Ressourcen gespeichert? (z. B. Schriftart, CIDFont, CMap, ProcSet, ...)
- Wo sind die Kategorien von ProcSet gespeichert?
Sie benötigen nur zwei zusätzliche Wörterbücher in systemdict
UPDATE 1 (localDict und globalDict Ressourcen zu speichern oder wo genau diese gespeichert werden?): (Nach Antwort von Kens)
Ok, vielleicht sollte jetzt die erste Frage sein. Wie werden Ressourcen in einem Interpreter gespeichert?
Von dem, was ich verstehe, ist, dass es vielleicht eine Struktur wie folgt ist:
Resources (Dictionary ??? is this local or global or ...?)
- Font (Dictionary)
- CIDFont (Dictionary)
--- CIDFontType (integer)
--- CIDFontName (name)
--- CIDSystemInfo (dictionary)
--- FontBBox (array)
--- FontMatrix (array)
--- FontType (integer)
--- ...
--- ...
- CMap (Dictionary)
- FontSet (Dictionary)
- Encoding (Array)
- Form (Dictionary)
- Pattern (Dictionary)
- ProcSet (Dictionary)
--- BitmapFontInit (Dictionary)
--- CIDInit (Dictionary)
--- ColorRendering (Dictionary)
--- FontSetInit (Dictionary)
--- Trapping (Dictionary)
- ColorSpace (Array)
- ...
- ...
- Category (Dictionary)
--- Generic (Dictionary)
Die meisten davon sind Wörterbücher, die in VM gespeichert werden. Entweder in der lokalen VM oder in der globalen VM.
Sind diese Ressourcen auch in userdict und globaldict hinzugefügt, weil:
- Wenn Sie etwas in lokalen VM speichern es ist höchstwahrscheinlich auf die userdict hinzugefügt.
- Wenn Sie etwas in einer globalen VM speichern, wird es höchstwahrscheinlich zum globaldict hinzugefügt.
siehe Postscript Language Reference Manual 3 (Seite 66 Kapitel 3):
Die Wörterbücher userdict und globaldict sollen die Hauptlager für die Anwendung definierten Wörterbücher und andere Objekte. Wenn ein PostScript-Programm ein Wörterbuch in der lokalen VM erstellt, ordnet es diesem Verzeichnis dann normalerweise einen Namen in userdict zu ( ). Wenn das Programm ein Dictionary in einer globalen VM erstellt, ordnet es normalerweise dem Dictionary einen Namen in globaldict zu.
Der einfachste wäre die Schaffung 2 Wörterbücher: „MyLocalResources“ und „MyGlobalResources“, wo die erste in userdict und die andere in globaldict gespeichert ist. Diese beiden Wörterbücher enthalten die Kategorien (Schriftart, CIDFont, ProcSet usw.).
Der findresource Operator ist ein Mechanismus, den Sie selbst implementieren müssen, der in einem dieser zwei Wörterbücher suchen wird.
Ist das korrekt?
Fontdirectory und GlobalFontDirectory sind diese tatsächlich die Umsetzung der lokalen und globalen „Font“ Kategorie Ressource?