Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

oixio

Senior Schreiberling

  • "oixio" is male
  • "oixio" started this thread

Posts: 517

Date of registration: Oct 3rd 2004

1

Tuesday, February 5th 2008, 4:05pm

Suche kostenloses Tool um PDFs zu rekomprimieren

Hallo,

ich suche ein Tool um die Dateigröße von PDF (verlustbehaftet) zu verringern, z.B. um sie per Mail zu Versenden. Im Grunde so etwas wie die Funktion im Adobe Acrobat, wo alle Bilder automatisch heruntergerechnet werden etc. Nennt sich PDF Optimieren oder so ähnlich.

Ich möchte nicht das ganze über einen PDF-Drucker neu ausdrucken, da ich dann die ganzen Informationen wie Hyperlinks und Bookmarks verliere. Das ist der Vorschlag, den ich im Netz am meisten gefunden habe.

Ich will/kann auch beim Erstellen keinen Einfluss nehmen, da das PDF durch LaTeX generiert wird und das die Bilder in Originalauflösung einbindet. Und ich möchte nicht 2 Varianten von jedem Bild bereithalten nur damit ich eine Vorschauversion des Dokumentes mal eben per Mail verschicken kann.

Gefunden habe ich bis jetzt:
- PDF Compress: rekomprimiert leider die Bilder nicht sondern quasi nur ein Zip-Kompression des PDF-Inhaltes. Bringt also bzgl. der Dateigröße nicht sehr viel
- Multivalent Compress: Berechnet die Bilder neu, macht aber aus meinen PNGs Bildsalat. Somit nicht brauchbar.

Fazit: bis jetzt habe ich noch kein passendes Tool gefunden. Hat da jemand etwas parat?

Anforderungen:
- Läuft unter Windows (idealerweise auch Linux)
- Gui ist nicht wichtig, Kommandozeile tuts auch
- im PDF eingebettete Bilder sollen heruntergerechnet werden, am besten mit einstellbarer Kompression
- soll nichts kosten, da ich das nur selten benötige
Dieser Post wurde aus 100 % chlorfrei gebleichten, handelsüblichen, freilaufenden, glücklichen Elektronen erzeugt!

audax

Praktikant

  • "audax" is male

Posts: 18

Date of registration: Jan 29th 2008

Location: Hannover

Occupation: Was mit Medien

2

Tuesday, February 5th 2008, 6:48pm

Das kann 'pdflatex' von sich aus schon:

Source code

1
2
3
4
5
6
7
8
9
10
	%%% check whether we are running pdflatex
	
	\newif\ifpdf 
	\ifx\pdfoutput\undefined 
	\pdffalse % we are not running pdflatex 
	\else 
	\pdfoutput=1 % we are running pdflatex 
	\pdfcompresslevel=9     % compression level for text and image;
	\pdftrue 
	\fi

Quelle

Latex kann alles. ;)

oixio

Senior Schreiberling

  • "oixio" is male
  • "oixio" started this thread

Posts: 517

Date of registration: Oct 3rd 2004

3

Tuesday, February 5th 2008, 7:15pm

Das macht auch nur eine Art Zip-Kompression des Dokumentinhaltes (das was oben genanntes PDF Compress auch macht). Aber die Bilder werden nicht recodiert. Somit ist die Platzersparnis relativ gering gegenüber dem Anteil, den die Bilder einbringen. Also nicht ganz das, was ich suche. Trotzdem danke.

Weitere Vorschläge?
Dieser Post wurde aus 100 % chlorfrei gebleichten, handelsüblichen, freilaufenden, glücklichen Elektronen erzeugt!

Rick

Mädchen

  • "Rick" is male

Posts: 1,266

Date of registration: Mar 17th 2004

Location: ::1/128

Occupation: Forentroll

4

Wednesday, February 6th 2008, 12:29am

mach dir doch nen makefile der vor dem einbinden mit libpbm die Bilder entsprechend skaliert?
Solange die Bilder in einem Verzeichnis liegen sollte das kein problem sein...

Sometimes you've got to ask yourself: Is xkcd shitty today?

oixio

Senior Schreiberling

  • "oixio" is male
  • "oixio" started this thread

Posts: 517

Date of registration: Oct 3rd 2004

5

Sunday, February 24th 2008, 2:14pm

Habe mittlerweile eine Lösung gefunden: Ghostscript. Ruft man GhostScript über die Kommandozeile auf (und nicht über irgendwelche Druck-Oberflächen) lässt sich mein Problem damit lösen. Das PDF wird neu erzeugt, dabei auch die Bilder komprimiert und alle Hyperlinks & Co bleiben erhalten.

Einzig negativ aufgefallen ist mir bisher nur, dass es bei manchen Bildern zu leichten Farbverfälschungen gekommen ist. Aber das lässt sich verschmerzen, da das Ziel ja eh eine verlustbehaftete Kompression war.

Ich habe dafür gleich mal eine Batch-Datei geschrieben, die ich euch nicht vorenthalten will (als gs_compress.bat abspeichern):

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
@echo off
rem Define Variables
set gswin32c="C:\Programme\Ghostscript\gs8.54\bin\GSWin32c.exe"
set compressionprofile=screen
rem set compressionprofile=ebook
rem set compressionprofile=%2
set outputfilename=%~dpn1
set outputfilename=%outputfilename%_compressed_%compressionprofile%.pdf

rem Print welcome screen
echo.
echo  =============================================
echo.
echo    GhostView PDF Compress for %compressionprofile%
echo.
echo    by: oixio
echo.
echo  =============================================
echo.
echo.
echo    Recompress File (optimized for %compressionprofile%)...
echo.
echo.
echo    Output: %outputfilename%
echo.
echo.
echo. =============================================
echo.
echo.
rem run ghostscript
%gswin32c% -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dBATCH -dPDFSETTINGS=/%compressionprofile% -sOutputFile="%outputfilename%" -c .setpdfwrite -f "%~f1"
echo.
echo.
echo Finished


Benutzung:
Einfach mit der gewünschten PDF als Parameter aufrufen (oder die Datei mit der Maus draufziehen, oder im Senden an-Menü verwenden, oder...). Es wird dann eine zweite PDF angelegt, deren Namen um "_compressed_PROFIL" ergänzt wird, das Original bleibt also erhalten.

Der Pfad zu Ghostscript muss gegebenfalls angepasst werden.
Die beiden Zeilen danach dienen dazu, das Kompressionsprofil auszuwählen, also entweder "screen" oder "ebook". Will man flexibel bleiben nimmt man die dritte Zeile und gibt das Profil als zweiten Parameter der Batch an oder erstellt sich zwei Batchdateien mit beiden Varianten. (Hinweis: "screen" komprimiert stärker als "ebook" macht aber z.B. Bilder in LaTeX Beamer-Folien nahezu unbrauchbar)

Viel Spaß damit.

oixio
Dieser Post wurde aus 100 % chlorfrei gebleichten, handelsüblichen, freilaufenden, glücklichen Elektronen erzeugt!