Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

programme:zeugniseditor:technik [2015/02/05 15:06] (aktuell)
Zeile 1: Zeile 1:
 +====== Technische Realisierung ======
 +Das Programm "​Zeugniseditor"​ ist im Grunde ein vektororientiertes Zeichenprogramm. Alle Informationen zum Layout werden unabhängig vom gerade verwendeten Grafikkontext berechnet und **vor** dem eigentlichen Rendervorgang in absoluten Koordinaten (in cm; Positionsangaben relativ zur linken oberen Seitenecke) zwischengespeichert. Der eigentliche (vom Ausgabegerät abhängige) Rendervorgang muss die Maße dann nur noch einheitlich skalieren. \\
 +Technisch knifflig ist nur der Textumbruch. ​
 +Leider skalieren die Pixelbreiten einzelner Buchstaben nicht linear mit der Auflösung des Ausgabemediums,​ d.h. hat ein Buchstabe bei 150 dpi die Breite 30 Pixel, so hat er bei 600 dpi nicht 120 Pixel, sondern i.a. etwas mehr. \\
 +Da die in Java vorgesehenen Standardkomponenten (JTextPane, JEditorPane) immer nur abhängig vom Ausgabemedium rendern, sind sie für wysiwyg nicht nutzbar. Um sicherzugehen,​ dass die Ausgabe auf allen Medien layoutgleich ist und um das automatische Trennen während der Texteingabe realisieren zu können, wurde der gesamte Editorteil ohne Rückgriff auf Swing-Komponenten programmiert. Die Textabmessungen werden (in der Einheit cm) immer mit einem virtuellen Grafikkontext bestimmt, der konstant 300 dpi hat. Für Ausgabemedien mit anderer Auflösung wird dann **linear** skaliert. Das sorgt auf dem Bildschirm (meist 72 dpi) bei niedrigem Zoomfaktor für geringfügig verschobene Zeichen, bringt aber im Ausdruck (egal ob bei 300 dpi oder höher) immer gute Ergebnisse. \\
 +Bei der Verwendung von Linux gibt es neben den geschilderten Problemen noch ein weiteres Hindernis: Die in Windows üblichen Schriften (Arial, Times new Roman, Courier new) sind dort nicht vorhanden. Es gibt aber metrisch äquivalente Schriften von Red Hat. Diese sind im Programm fest integriert und werden bei Bedarf als Ersatz verwendet. \\
  
 +**Verwendete Bibliotheken:​ **
 +
 +  * iText
 +  * BeanShell
 +  * Einfacher Public Domain Algorithmus zum Bestimmen der möglichen Trennstellen in deutschen Wörtern
 +  * hunspell jna-implementation (siehe [[http://​dren.dk/​hunspell.html]])
 +  * Wörterbuch iSpell (siehe [[http://​www.j3e.de/​ispell/​igerman98/​]])
 +
 +Letzteres kann ist GPL/​OASIS-lizensiert und kann nur bei Offenlegung des Sourcecodes oder Verwendung von OpenDocument als primärem Dokumentenformat genutzt werden.
Drucken/exportieren
QR-Code
QR-Code programme:zeugniseditor:technik (erstellt für aktuelle Seite)