batch pdf groesse optimieren



  • Hallo Leute.

    Ich suche eine Loesung um mehrere PDFs in der groesse zu optimieren. Adobe Acrobat bietet diese moeglichkeit zwar, aber kostet recht viel - gibt es da freie Tools?

    Plattform ist eigentlich egal da ich es als Webservice laufen lassen will.

    Hauptsaechlich geht es darum die DPI der eingebetteten Bilder zu reduzieren - das ist was am meisten bringt bei unseren PDFs. Nur leider habe ich kein einziges Tool gefunden dass das kann. Die meisten Sachen die ich gefunden habe stecken noch in der Entwicklung (und ich wuerde es gerne produktiv einsetzen).

    uU kann man auch ueber postscript und einen virtuellen drucker treiber etwas erreichen? nur leider kenne ich mich auf dem gebiet nicht besonders gut aus - braeuchste also ein paar Hinweise.

    Danke schon mal.



  • Reduziere die Bilder auf die gewünschte Auflösung/Größe. Tools dazu gibt es im
    Web säckeweise (auch für den Batchbetrieb). Ich weiß nicht, wie Du die PDFs
    erzeugst, ich mache das per "Hand". Viel zu komprimieren ist da leider nichts.

    Es gibt auch xpdf (hat recht viel Code der nicht immer notwendig ist). Bei Adobe
    gibt es die PDF-Specs.



  • Scheppertreiber schrieb:

    Reduziere die Bilder auf die gewünschte Auflösung/Größe.

    Die PDFs kommen so von der Reinzeichnung (sprich fertig fuer den Druck) - und dadurch natuerlich in einer Form die fuer den rein digitalen gebrauch unpraktisch ist. PDFs mit >100MB sind keine seltenheit. Mit Adobe Acrobat sind da ohne Probleme aber auf <10MB zu bekommen.

    Nur belastet dass unsere Reinzeichnung da sie dauernd die PDFs in unterschiedlichen groessen Erstellen muessen (und vorher ist auch nicht immer klar ob wir eine rein digitale Version brauchen und dadurch wird sinnlos mehrarbeit gemacht).

    Worum es also geht:
    Es gibt PDFs die zu gross sind. Die Erstellung der PDFs ist nicht beeinflussbar. Das Ziel ist es nun die grossen PDFs kleiner zu bekommen.

    PS:
    mit rein digitaler Verwendung meine ich, dass sie nur auf normalen Monitoren angeschaut werden - man also keine 300+ DPI Bilder braucht, sondern 72 DPI mehr als genug ist.





  • Das ist etwas anderes.

    Ich habe ein Archivierungssystem wo ich die PDFs onthefly auf TIFF erzeuge, da
    liegen die als CCIT-FAX vor (und nicht als Druckvorstufe). Bei Dir bleibt nur, die
    PDFs zu zerlegen, die Bilder zu skalieren und dann die PDFs neu zu erstellen.

    Ich weiß nicht, ob es da etwas fertiges gibt. Leider ist PDF etwas zickig 🙂



  • mmmh, also das einfachste was mir einfällt ist die bilder mit pdfimages (aus dem poppler-utils paket) zu extrahieren, diese zu komprimieren und dann mit pypdf gegen die orginal bilder auszutauschen.



  • borg schrieb:

    mmmh, also das einfachste was mir einfällt ist die bilder mit pdfimages (aus dem poppler-utils paket) zu extrahieren, diese zu komprimieren und dann mit pypdf gegen die orginal bilder auszutauschen.

    Ey, das ist aber die blanke Faulheit 🙂

    Aus dem PDF die xref auslesen und alle Objects die Bilder darstellen auf die
    Platte schreiben. Die Struktur des PDF ändert sich ja nicht, nur die Offsets.
    Zwischendrin die Builderl runterskalieren, je nach Format.



  • borg schrieb:

    mmmh, also das einfachste was mir einfällt ist die bilder mit pdfimages (aus dem poppler-utils paket) zu extrahieren, diese zu komprimieren und dann mit pypdf gegen die orginal bilder auszutauschen.

    So einfach ist das aber nicht - denn du musst den Kontext wissen indem das Bild vorkommt um zu wissen auf was du es skalieren musst.

    Diese Arbeit ist nicht trivial, sonst haette ich es laengst selbst gemacht.

    PS:
    es gibt kommerzielle Tools die das machen - es ist eine sehr gaengige Arbeit PDFs zu optimieren. Nur will ich eigentlich dafuer kein Geld ausgeben. Deshalb suche ich eben eine freie Variante.



  • Shade Of Mine schrieb:

    So einfach ist das aber nicht - denn du musst den Kontext wissen indem das Bild vorkommt um zu wissen auf was du es skalieren musst.

    Was meinst du mit Kontext? Woher kennen kommerzielle Programme den Kontext?



  • PDFs sind für den Druck gemacht, dh ein Bild kann eine Auflösung von 10mio mal 10mio haben und dennoch nur auf 1x1 cm gedruckt werden.

    Nur woher weiß ich auf was für eine Fläche ich das Bild drucken muss? Das ist das Problem wenn ich die Bilder einfach nur ohne Kontext aus dem PDF nehme. Natürlich ist es auch möglich den Kontext auszulesen - wie sollte sonst ein Viewer das Bild in der richtigen Größe darstellen? Aber man muss eben das ganze PDF parsen dafür - und das ist eben keine triviale Aufgabe.

    Es sei denn du kennst eine freie Library die das kann.



  • Probier's mal mit der PDF-Doku (irgendwo bei Adobe). Die Größe kann man auslesen
    und dann entsprechend das Bild skalieren. Dann alles wieder zusammenschraddeln, nur
    die xref muß neu erzeugt werden.



  • Scheppertreiber schrieb:

    Probier's mal mit der PDF-Doku (irgendwo bei Adobe). Die Größe kann man auslesen
    und dann entsprechend das Bild skalieren. Dann alles wieder zusammenschraddeln, nur
    die xref muß neu erzeugt werden.

    Wenn ihr keine Ahnung habt, dann sagt bitte nichts.
    Ich habe mich mit dem Thema bereits näher befasst - ich würde nicht fragen wenn ich da nicht schon einige Zeit rein investiert hätte.

    Wenn es so trivial ist, dann mach doch bitte mal kurz selber.

    Es hat schon seinen Grund warum die guten Tools die das können sehr teuer sind.

    Statt solchen Antworten kann man gleich JFGI sagen - hat den selben Inhalt dann.

    Einfach mal kurz einen kompletten PDF Parser bauen... ja klar. Meine Güte - ist es so schwer zu sagen "Nein, ich kenne kein fertiges Tool"? Bzw. dann einfach nichts sagen.

    Was natürlich geht wäre ein Hinweis auf eine Library die das kann. Aber ich habe noch keine gefunden. Das alleine sollte einem ja schon zu denken geben wie trivial diese Aufgabe ist, oder?

    Es gibt zB ein Unix-Tool das pdfopt heisst und PDFs optimiert. Aber es kann nur Linearisieren und sonst nix. pdfimages kann zB nichtmal korrekt die Images exportieren.

    Sorry wenn ich jetzt etwas sauer wirke, aber die Vorschläge sind einfach nur Schwachsinn. Deshalb: bitte nur posten wenn man etwas zum Thema beitragen kann...



  • Es ist kein Schwachsinn.

    Ich erstelle in meiner Software PDFs und habe mich auch mit Grausen durch die
    Doku gewühlt. Es ist anfangs etwas sperrig, ansonsten aber das einzige Format
    das reproduzierbare Ergebnisse bringt (im Gegensatz zu zB HTML).

    Es gibt die PDF-Lib (xpdf). Nimm die wenn Du nicht auch dazu zu bequem bist.

    Schreiben werde ich Dir so ein Programm nicht, hier gilt Hilfe zur Selbsthilfe.
    Nimm es an oder nicht.



  • Scheppertreiber schrieb:

    Es ist kein Schwachsinn.

    Ich erstelle in meiner Software PDFs und habe mich auch mit Grausen durch die
    Doku gewühlt. Es ist anfangs etwas sperrig, ansonsten aber das einzige Format
    das reproduzierbare Ergebnisse bringt (im Gegensatz zu zB HTML).

    Es gibt die PDF-Lib (xpdf). Nimm die wenn Du nicht auch dazu zu bequem bist.

    Schreiben werde ich Dir so ein Programm nicht, hier gilt Hilfe zur Selbsthilfe.
    Nimm es an oder nicht.

    Das Problem dabei ist: ein PDF erstellen ist einfach. Aber es kostet sicher 40 Stunden eine Software zu schreiben die Bilder auslesen kann und diese richtig umwandeln kann.

    xpdf ist leider nicht dokumentiert und pdfimages bringt mir nix - wie schon gesagt. uU bietet xpdf die benötigte Funktionalität - nur ohne Doku bringt mir das herzlich wenig.

    PS:
    und die Frage war: kennt jemand ein fertiges Tool
    und nicht:
    kann mir jemand den PDF Standard erklären.

    Ich will kein Programm selber schreiben - nur wenn es gewisse funktionalität in einer Library schon gibt.

    Ist das so schwer zu verstehen?

    Klar kann ich mich mit der PDF Spezifikation hinsetzen und alles von Hand machen - aber wo ist der Sinn? Da kaufe ich einfach den Acrobat und bin billiger davongekommen und das ergebnis ist auch perfekt.



  • Hehe, Forum-Suche benutzen 😃

    http://www.c-plusplus.net/forum/viewtopic-var-p-is-1588115.html#1588115

    (mein eigenes Thema *g*)


Anmelden zum Antworten