2010-07-19 3 views
6

Ich bin auf der Suche nach einer Möglichkeit zur Verringerung der PDF-Größe, die ich mit Quarz erzeugen. Ich zeichne Bilder mit CGContextDrawImage in einem CGPDFContext. Was ich befürchte ist, dass die Bilder als Bitmap und nicht als JPEG gespeichert werden. Gibt es eine Möglichkeit, dies zu überprüfen und eine Möglichkeit, dies beim Schreiben der PDF zu kontrollieren?Reduzieren Sie die Größe der PDF-Datei mit Quartz2D generiert

Ich habe auch versucht, das Bild zu verkleinern, bevor ich es in den PDF-Kontext schreibe, aber ich lande mit einer noch größeren Datei (obwohl die Seitengröße in Pixeln kleiner ist).

Danke!

+0

Könnten Sie ein paar Eigenschaften nennen, was Sie zeichnen, woher die Bilder kommen und wie groß die resultierenden Dateien sind? Haben Sie eine Datei an ein externes PDF-Komprimierungstool übergeben und sich die Unterschiede angesehen? –

+0

Die Bilder sind Kamerabilder, die im JPEG-Format gespeichert und dann in UII-Objekten eingelesen werden. Also zeichne ich ein UIImage.CGImage im CGPDFContext. Dateigröße wäre zum Beispiel 1,2 MB für eine einzelne Seite. Wenn ich versuche, herunter zu skalieren, gehe ich auf 3 MB. Mit einem Kompressionswerkzeug (Quarzfilter) ist es mehr wie 500KB. – Kamchatka

+0

Können Sie den Code angeben? – vikingosegundo

Antwort

1

Es gibt keine öffentliche API für die Einstellung der Bildkomprimierungseinstellungen CGPDFContext.

+0

Ich habe auch eine andere Bibliothek mit Kompressionseinstellungen ausprobiert. Das Muster scheint ähnlich zu sein: Die Größe des Bildes spielt im Vergleich zur Größe der PDF-Seite keine Rolle. – Kamchatka

+0

Vielleicht versuchen Sie, die Farbtiefe auf dem 'CGImage' zu ​​reduzieren, das Sie schreiben? Ein 16-Bit-Bild ist halb so groß _wenn 'CGPDFContext' Bilder in ihren Quellformaten speichert – rpetrich

+0

Ich habe mir das angeschaut, konnte aber keine API finden, um die Tiefe eines CGImages zu reduzieren. Würdest du wissen, wie das geht? – Kamchatka

0

Ich bin nicht sur, wenn Sie PDF auf dem iPhone reduzieren müssen oder wenn es für Sie akzeptabel ist, sie auf einem PC/Mac zu reduzieren.

auf PC/Mac, Adobe Acrobat Pro (ein kommerzielles Produkt nicht zu verwechseln mit Adobe Reader) einen PDF-Optimierer. Menü "Adavanced"> "PDF Optimizer ...". Dies kann Bilder, Schriftarten usw. herunterskalieren. Da gibt es auch eine command-line interface (using AutoBatch). Es ist nicht billig, aber es ist wahrscheinlich der beste PDF-Kompressor da draußen.