OS X: PDFs (sinnvoll) optimieren

OS Xs “Vorschau” bietet Ablage -> Exportieren -> Format: PDF, Quartz-Filter: Reduce File Size. Das funktioniert bescheiden; als Bild gescannter Text bsplw. ist dann nicht mehr lesbar. Internet sagt, man könne per “ColorSync” eigene Filter definieren, die funktionieren dann aber gar nicht.

Lösung: Eine Filterdatei (lokale Kopie) nach /System/Library/Filters/ kopieren (Achtung: Verzeichnis ist ggf. versteckt). Danach hat man den Quartz-Filter “PDF optimiert”, und der ist besser.

PHP: PDFs erstellen mit FPDF

FPDF ist ein gutes Tool, um mit PHP recht einfach PDFs zu erstellen. Hier meine gesammelten Learnings nach der ersten Anwendung:

  • Eigene Fonts werden mit MakeFont() in für PHP verständliche Form gebracht (gibt’s auch als Online-Tool)
  • Die Einbindung eigener Fonts geschieht mittels AddFont(), wobei die “Font Family” der String ist, der in der mit MakeFont() erzeugten PHP-Datei $name heißt
  • Text, der mit Write() geschrieben wird, bricht die Seite nicht um
  • Text im Header bricht die Seite nicht um, Text im Footer bricht die Seite nicht um. Mir erschien es zuerst etwas uneinsichtig, wo ich den Content erzeuge – es gibt Header() und Footer(), aber kein Content() oder Body(). Der Grund: Header() und Footer() werden von AddPage() aufgerufen, und damit auch bei automatischem Page-Break. Sprich: Jedesmal; deshalb sind sie ausgelagert. Der Content dagegen wird nur ein mal hinzugefügt. In den Beispielen meistens von außen, aber es geht auch im Konstruktor.
  • Text bricht dann die Seite automatisch um, wenn er mit Cell() (man beachte Parameter “ln”) oder MultiCell() hinzugefügt wird
  • Text in Cell() bricht selbst nicht um, nur in MultiCell()
  • t scheint nicht zu funktionieren, n dagegen schon

Und schließlich, nicht direkt zu FPDF: Wenn es UTF8-Probleme mit Texten aus der Datenbank gibt, kann es daran liegen, dass der Text nicht UTF8-kodiert aus gelesen wird. Ein

hilft dann.