Frage von wotan38, 50

Wer kann mir bei PostScript helfen?

Ich habe vor mehr als 20 Jahren für eine aufwändige Druckgestaltung für einen Kunden mich in die Druckersprache Postscript soweit eingearbeitet, dass ich im Rahmen des üblichen Druckes gut zurechtkomme. Das Einbinden von Programmbausteinen habe ich nur für das Erweitern des Fonds um Umlaute und es benötigt. Ich habe mir mehrere Bücher besorgt, wo ich von einer der beiliegenden Disketten diese Routine kopieren konnte. Nun kann ich diese Disketten (die großen Lappen von damals) nicht mehr lesen, da es dafür keine Laufwerke mehr gibt. Im Buch wird aber auf diese verwiesen.

Ich möchte nun eine rechteckige Fläche mit einem Grauton unterlegen. Einen Befehl dafür gibt es nicht. Laut Beschreibung macht man sich ein kleines Programmchen, das in einer Doppel schleife Zeile für Zeile pixelweise einen frei wählbaren Binärwert schreibt. Dazu bräuchte ich dieses Unterprogramm, das unter Angabe von zwei Koordinaten punkte des Rechtecks (links oben und rechts unten) die eingeschlossene Fläche tönt. Ideal wäre eine Option zum Manipulieren des Sättigungsgrades, der eher hell als zu dunkel benötigt wird.

Meine Frage: Gibt es hier jemanden, der mir dabei helfen könnte? Mich jetzt noch voll in die Tiefen des Postscripts einzuarbeiten ist mir zu mühsam, mit meinen 78 Jahren lohnt sich das auch nicht mehr so recht.

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von ralphdieter, 31

Erstmal großen Respekt, dass Du dein Programm noch pflegst. PostScript habe ich nur mal gestreift, um ein Linienmuster zu kreieren. Deshalb kann ich hier nur einen Hinweis auf Verdacht geben: In Level 2 kam "mehr Farbe rein". Da sollten Konstrukte gehen wie:

0.95 setgray 0 0 20 20 rectfill
1 1 0.9 setrgbcolor 20 20 20 20 rectfill

Das habe ich halbblind aus der Adobe PostScript Reference herauskopiert (https://www.adobe.com/products/postscript/pdfs/PLRM.pdf)

Auf Seite 255 gibt's sogar ein Beispiel, das das angehängte Bild erzeugt. Vielleicht hilft's ja ein wenig...

Antwort
von wotan38, 18

An alle, die mir geantwortet haben.

Ich habe es mir anders überlegt und der Zuspruch ganz allgemein hat mich motiviert, doch noch in meinen Postscriptunterlagen (ich besitze drei Bücher davon) zu suchen. Dabei bin ich auf eine recht einfache Lösung gestoßen, die beim Test allerdings nicht funtionieren wollte. Das Beispiel war aus dem Zusammenhang gerissen dargestellt und bezog sich auf Bedingungen, die im Buch weiter vorne wohl erklärt waren. Ich habe einen ganzen Tag daran herumprobiert und es schließlich geschafft. Ich habe mir jetzt ein Unterprogramm eingerichtet, das beim Aufruf ein Quadrat getönter Fläche passender Größe am aktuell eingestellten Ort plaziert. Entgegen des Beispiels im Buch habe ich den setgray-Befehl auch in das Unterprogramm gepackt. Ansonsten hätte ich vermutlich jedesmal die aktuelle Umgebung sichern und wiederherstellen müssen, was die Unterprogammlogik dann wohl automatisch gemacht hat.

Mein Sudoku schaut jetzt einfach super aus.

Wenngleich keine der Antworten im Sinne meiner ursprünglichen Frage direkt zur Lösung beigetragen hat, so haben sie mich doch zum Umdenken motiviert und den anfänglich gescheuten Weg zu gehen. Den Stern kann ich leider nur einmal vergeben, die Entscheidung war nicht einfach.

Antwort
von TeeTier, 24

Du solltest evtl. in Erwägung ziehen, mit LaTeX zu arbeiten. Händisches Postscript ist zwar ganz interessant und hat in Randbereichen auch seine Daseinsberechtigung, aber selbst wenn du jetzt von Null mit LaTeX anfängst, sparst du damit kurz-, mittel- und langfristig sehr viel Zeit ein.

Zurück zu deiner Frage: Was hält dich denn davon ab, "rectfill" zu benutzen? :)

PS: Schön, dass es noch Leute gibt, die in PostScript direkt programmieren. Gibt leider nicht viele, die sich selbst ihre PS-, PDF-, RTF und SVG-Dateien im Texteditor selber bauen. ;)

Kommentar von wotan38 ,

Danke für die schnelle Antwort. Postscript verwende ich zum Ausdruck von Ahnentafeln im Zusammenhang mit einem von mir erstellten Softwarepaket für die gesamte Abwicklung eines Rassehundezuchtvereins. Auch Statistiken in der vereinseigenen Zeitschrift lassen sich meist nur in Postscript gestalten, weil man da den Text einfach um einen oder zwei cm schmaler drucken kann, wenn der Platz nicht ausreicht. Die Druckersprache wird zwar nicht mehr weiterentwickelt, aber der Aufwand für den Einbau in Drucker schein sich in Grenzen zu halten. Ich habe vor kurzem erst einen Brother WLAN Drucker mit vier Druckersprachen für 300 € erstanden. Dafür bietet diese Technik eine praktisch immer realisierbare Einbindung in jede Programmiersprache. Aus Altersgründen bin ich dabei, die Betreuung für das fertiggestellte  Softwarepaket abzugeben. Hier geht es mir aber darum, dass ich mir ein Sudoku-Programm erstellt habe und mir auch Drucke damit erstellen kann. Dabei möchte ich zur besseren Lesbarkeit die vorgegebenen Felder tönen. Nun habe ich mir gedacht, vielleicht noch irgendwo einen Postscriptfan aufzutreiben, der mir die paar Befehle dafür aus dem Ärmel schütteln kann. Ich glaube auch nicht, dass Postscript in nächster Zeit verschwindet. Denn es ist ja eine Software und diese verschleißt ja nicht im Laufe der Zeit. Solange es eine Umgebung für den Einsatz gibt, wird man sie auch anbieten. Leider ist die Sprache zu exotisch und schwer handzuhaben, deshalb wird sie kaum genutzt. Drucken ist in der Programmierung nur ein kleiner Teilaspekt. Wer möchte da noch soviel Gehirnschmalz dafür investieren, wenn er nicht unbedingt muss?

Ich programmiere übrigens in COBOL und habe eine excellente Entwicklungsumgebung dafür, mit perfekter Datenbankeinbindung (ohne Precompiler oder so) und einer sehr effektiven Fehlersuche. Man findet damit sogar Fehler, nach denen man noch gar nicht sucht. Im Informatikunterricht ist COBOL schon lange tot, obwohl erst vor Kurzem eine neue Version herauskam: Visual-COBOL für grafische Oberfläche ohne Zusatzsoftware. Weltweit werden immer noch 70% der Großprojekte in COBOL geschrieben. COBOL ist nur sehr teuer, der Vertrieb ist sehr restriktiv, da gibt es keine kostenlosen Einstiegsversionen für Studenten. Schade. 

Antwort
von Jinnah, 31

Warum nehmen Sie nicht ein Grafikprogramm? Es gibt für Wenigverwender kostenlose (Gimp) oder preiswerte (eine alte Version von Corel oder Illustrator). Bei Corel, das ich zum Beispiel verwende, ist eine Fläche innerhalb von 2 Sekunden mit Farbe gefüllt und es ist ein Vektor und keine aneinandergereihten Pixel.

Kommentar von wotan38 ,

Danke für die schnelle Antwort. Es geht mir nicht darum, irgendeine graue Fläche zu drucken, sondern diese Möglichkeit in meine Anwendung einzubinden. Postscript ist halt eine Druckersprache, die als Text an einen postscriptfähigen Drucker geschickt wird. Der Drucker erkennt das und statt die Befehlsfolge zu drucken, führt er die Befehle aus. Auch wenn Postscript nicht mehr gepflegt und kaum noch verwendet wird, ist es für die graphische Gestaltung sehr vielseitig. Drucker mit Postscript gibt es nach wie vor, habe mir erst vor kurzem einen angeschafft, der 4 Druckersprachen kann. Zwei davon kenne ich gar nicht.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten