[linux-l] Texte effektiv speichern

Volker Grabsch vog at notjusthosting.com
So Sep 30 14:29:53 CEST 2007


On Sun, Sep 30, 2007 at 09:56:41AM +0200, Thomas Schmidt wrote:
> Auf unserem Server werden kleine Texte zum Ausdrucken für die Besucher 
> generiert. Enthalten sind kleine Bilder und Tabellen. Jetzt suchen wir 
> eine Möglichkeit, sie so platzsparend wie möglich zu erstellen, damit 
> wenig Müll auf der Platte entsteht.
> 
> Möglichkeiten:
> PDF mit zwei UTF-8 Schriftarten a 130kB = 280kB pro Dokument
> PDF mit eingebettetem GIF, pro Seite 100kB
> HTML mit viel CSS und Bildern in CSS nicht probiert, wahrscheinlich 
> weniger, aber wegen der Browserbugs nicht gut transportabel

Es gibt dann noch OpenDocument (ODT).

Aber ich würde einen Schritt eher ansetzen, und die Texte mitsamt
Bilder als LaTeX speichern.

Ein kleines Script bringt dann die jpg/gif/png-Bildern ins
EPS-Format und jagt alles durch latex, dvips, ps2pdf durch.

(Man kann auch direkt pdflatex nutzen, aber das Ergebnis ist
etwa das Gleiche, und pdflatex kann keine Schriftfarben).

Auch interessant, wenn die zwei Seiten der doppelseitigen
Dokumente unabhängig voneinander sind: SVG-Grafik. Sehr
einfaches Format für Text und Grafik, wird zunehmens auch
von Browsern unterstützt, kann mit "inkscape -P ..." nach
Postscript gewandelt werden.

> Ein Ansatz wäre, aus den Schriftarten alle nicht benötigten Zeichen zu 
> löschen. Oder eine gute Kompression sieht die Ähnlichkeiten der Dateien 
> untereinander und packt sie geschickt. Für beides habe ich keine Lösung 
> gefunden.

Der Ansatz geht IMHO zu weit am Ende los. Dein nachfolgender
Vorschlag ist IMHO der Richtige Weg[tm]:

> Auch möglich wäre, in der Generierung der PDFs mit TCPDF (PHP-Klasse) 
> eine selbstentwickelte Sprache zwischenzuschalten, die nur 10kB pro Text 
> verursacht und jederzeit mit Hilfe der Klasse das PDF erstellen kann. 
> Ich schrecke nur davor zurück, dass irgendwann die Texte nicht mehr 
> lesbar sind, weil das Script nirgends läuft.

Nimm LaTeX anstelle der "selbstentwickelten Sprache".

Oder lass dein Script LaTeX-Code anstelle von PDF erzeugen, das
ist einfach und portabel. Hast du dennoch Angst vor zukünftigen
PHP-Inkompatibilitäten, dann nimm Python, die Sprache ist schlanker
designt, und einfache Scripte, die man vor Jahren in Python-1.5
geschrieben hat, laufen auch heute unter Python-2.5 noch ordentlich.

Oder, wenn's wirklich portabel sein soll, ein Shellscript mit
eingebettetem "sed" oder "awk", damit lassen sich einfache Sprach-
Übersetzungen auch schon erledigen.

Aber, wiegesagt, anstelle der "selbstentwickelten Sprache" würde
ich direkt LaTeX nehmen, oder eine Variante davon (LOUT, ...).

Die selbe Argumentation spricht übrigens auch für HTML. Etwas
Text mit Bildchen gut zu formatieren, dafür bedarf es keiner großen
CSS-Aktionen. Halte den HTML-Code so einfach wie möglich, und
vermeide die "div"-Falle: Benutze <h1> für Überschriften, und
keinen Unsinn wie <div class="ueberscript">. Dann zeigt es auch
ein Browser ohne CSS-Unterstützung noch ordentlich an.

Aber ob LaTeX oder HTML, das kommt ganz darauf an, was du mit
diesen Texten vorrangig machen willst: Soll das auf Web-Benutzung
oder auf Ausdrucke optimiert werden.

Beides gleichzeitig geht auch, mit XML-Sprachen wie DocBook
oder wikiartigen Sprachen wie reStructuredText. Bei denen sind
aber gute PDF- bzw. HTML-Generatoren ein Problem. MediaWiki hat
gute HTML-Erzeugung, krankt aber bei der PDF-Generierung.


Gruß,

    Volker

-- 
Volker Grabsch
---<<(())>>---
Administrator
NotJustHosting GbR



Mehr Informationen über die Mailingliste linux-l