Dateigrösse beim PDF Export ohne Benutzerinteraktion

Hallo zusammen,

nachdem schon vor geraumer Zeit einer meiner Kollegen eine Anfrage an den combit-Support geschickt hat und wir von dort leider nichts gehört haben, versuche ich es mal hier.

Anfang des Jahres habe ich eine PDF-Archivierung für die kommende Version unserer Software integriert. Dabei wird zusätzlich zum Druck der Report ohne Benutzerinteraktion als PDF-Datei abgelegt, wie es in der Knowledge-Base (Export.Quiet) zu finden ist. Das war noch mit List&Label 15 und VB.NET mit VisualStudio 2010, inzwischen sind wir auf List&Label 16 umgestiegen, was aber bei dieser Problematik auch nichts hilft.

Es klappt soweit alles wunderbar. Allerdings kam unser QS-Mensch mit der Frage zu mir, ob die PDF-Dateien wirklich so gross sein müssten. Ich habe damals ein wenig herumexperimentiert und nicht wirklich dramatische Verbesserungen erzielen können. In der Hoffnung, dass combit uns weiterhelfen könne, haben wir uns an den Support gewandt und nicht selber weitergeforscht.

Nun steht die Beta-Phase for der Tür und ich habe die Zeit gefunden mich wieder etwas genauer damit zu beschäftigen. Ich habe daher mal alle Kombinationen der Parameter PDF.FontMode und PDF.CompressStreamMethod durchprobiert.

Die Dateigrösse für eine einseitige Rechnung liegt dabei zwischen 140 KB (unbrauchbar, da die PostScript-Schriftarten die Texte breiter als die Spalten machen) und 1 MB. Brauchbare Dateien haben eine Grösse von rund 150 KB, der Standard (PDF.FontMode = 5, PDF.CompressStreamMethod = 1) liegt bei rund 210 KB. Zwischen den Kompressionsmethoden Flate und FastFlate gibt es fast keinen Unterschied (manchmal ist Flate 1 KB kleiner). Run-Length-Kompression ist grösser als diese beiden und keine Kompression natürlich noch grösser.

Starte ich nun statt des Drucks die Vorschau und gebe darüber eine PDF-Datei aus, so ist sie nur 73 KB gross, nutze ich einen PDF-Drucker ist die erzeuge PDF-Datei sogar nur 37 KB gross. Die beiden auf diese Art erzeugten PDFs sind dabei der über den Export bei Druck erzeugten, 150 KB grossen, Datei qualitativ ebenbürtig.

Nach dieser langen Vorrede eine kurze Frage:
Wie schaffe ich es ohne Benutzerinteraktion eine PDF-Datei zu erzeugen, die zumindest mit der PDF-Datei aus der Vorschau in Bezug auf Grösse und Qualität mithalten kann?

Das ist aber seltsam, der Support von combit ist eigentlich meistens ganz fix. Bist Du sicher, dass Deine Anfrage überhaupt angekommen ist?

Mit den PDFs habe ich auch schon einiges rumgespielt. Man kann einzelne Fonts noch excluden (wenn sichergestellt ist, dass die auf dem Zielsystem vorhanden sind). Ausserdem kannst Du mal versuchen, evtl. vorhandene Bilder (Logos o.ä.) kleiner zu machen. Das könnte den Unterschied zur Vorschau erklären, da werden die Bilder m.W. passend zur größe drin gespeichert, beim Druck werden sie wohl 1:1 durchgereicht.

G.

Export.Quiet erstellt vermutlich ein PDF im Format PDF/A (für Archivierung). Dieses beinhaltet sämtliche verwendeten Fonts und ist dadurch grösser. Kannst das mal prüfen. Falls dem so ist suche eine Option um PDF/a zu deaktivieren.

Ob die Anfrage angekommen ist kann ich nicht sagen, leider ist mein Kollege, der die Anfrage gestellt hat, momentan im Urlaub, also kann ich nicht nachfragen, ob er zumindest irgendeine Reaktion erhalten hat, wenn auch keine Antwort.

Die verschiedenen Fonteinbindungen habe ich, wie schon geschrieben, alle durchprobiert.
Am kleinsten werden die Dateien mit PDF.FontMode = 3 (Keine Einbettung von TrueType-Schriftarten. Es werden die Standard Post-Script –Schriftarten verwendet.), bei Flate-Kompression, allerdings ist die Datei damit nicht brauchbar. Mit FontMode = 0 oder 2 ist die Datei, wie geschrieben, mit 150 KB noch immer gut doppelt so gross wie die mit dem Vorschau-Export erzeugte.

Der Report könnte ein RTF-Hintergrundbild enthalten, ein entsprechender Platzhalter ist im Report vorhanden. Allerdings nutzt diese Möglichkeit kaum einer unserer Kunden. Ich habe es daher zunächst ohne Hintergrundbild versucht. Nun könnte möglicherweise der leere Container trotzdem die Dateigrösse leicht aufblasen, aber so dramatisch sollte das, meiner Meinung nach, nicht sein. Ich habe aber auch mit dem Parameter PDF.JPEGQuality experimentiert, doch, wie erwartet, hatte der in diesem Fall keinen Einfluss auf die Dateigrösse.

Ich habe natürlich auch die beiden Werte für den PDF/A-Parameter ausprobiert, weil die Ausgabe der Archivierung dienen soll und daher eine PDF/A-Datei eigentlich genau das richtige wäre. Per Default wird keine PDF/A-Datei erzeugt, mit dem entsprechenden Parameter wird die Datei noch um ein vielfaches grösser.