Grosse PDF Datei?

Hallo zusammen,

hier eine Frage: habe immer große PDF Datei für die Rechnung und den Lieferschein, c.a. 500KB, obwohl es nur eine Seite ist und nicht so viel text drin steht. Die Datei für Shop-Logo “pdf_log.jpg” ist auch nur 8KB gross. Also weiss jemand, wie ich die Datei kleiner machen? Danke.

VG,
Ge

ui, das sind ja meine auch.
ich fürchte hier brauchen wir eine andere PDF Bibliothek.
Ich habe gute Erfahrungen mit domPdf gemacht, es packt unsere 5 seitige FAQ auf 35kb. Aber hierfür wirst du ein Template für die Rechnung bauen müssen.

Hallo Vanilla,

danke für die schnelle Antwort. Habe gerade selber eine Lösung gefunden - die Größe kommt von den FONT mitgeliefert mit TCPDF modul. Ich habe die Font Dateien angeguckt und wähle dann eine kleinere - Problem gelöst (in oxpdf.php, SetFont() den gewünschten Fontname einfügen). Natürlich wenn man unbedingt ein FONT haben möchte, ist deine Lösung vielleicht doch besser, TCPDF packt vermutlich komplette Fontinfo in der PDF-Datei…

Hoffe diese Lösung ist dann auch nützlich für andere.

Gruss, Ge

welche Schriftart hast du denn?
bei mir steht schon Arial und ich bin trotzdem bei 485kb+

Ich habe die kleine helvetica Font unter core cpdf\fonts genommen und komme jetzt auf 13KB eine Seite aus. Arial steht wahrscheinlich nur da, in der Tat hat TCPDF freesan Font verwendet wie im coding zu lesen ist. Hoffe es hilft.

Gruss, Ge

Das Problem hatte ich auch schonmal, es liegt daran, dass es einen internen Switch gibt, der beim Einsatz von UTF-8 eine andere Schriftart nutzt bzw. die ins PDF einbettet.

Zu finden in der core/oxpdf.php in der Methode “SetFont”:



    /**
     * Sets font for current text line
     *
     * NOTICE: In case you have problems with fonts, you must override this function and set different font
     *
     * @param string $family   font family
     * @param string $style    font style [optional]
     * @param string $size     font size [optional]
     * @param string $fontfile font file[optional]
     *
     * @return null
     */
    public function SetFont($family, $style='', $size=0, $fontfile='')
    {
        if ( $family == 'Arial' ) {
            // overriding standard ..
            $family = oxConfig::getInstance()->isUtf() ? 'freesans' : '';
        }

        parent::SetFont($family, $style, $size, $fontfile);
    }