Ich bin auf der Suche nach einem Open-Source-Befehlszeilentool zum Zuschneiden von PDF-Dateien, wie wir es in Adobe Acrobat Pro tun können. Ich habe PdfTk, ImageMagick, PyPDF und GhostScript ausprobiert - alles bisher ohne Erfolg.
Ich bin auf der Suche nach einem Open-Source-Befehlszeilentool zum Zuschneiden von PDF-Dateien, wie wir es in Adobe Acrobat Pro tun können. Ich habe PdfTk, ImageMagick, PyPDF und GhostScript ausprobiert - alles bisher ohne Erfolg.
Antworten:
Ich würde vorschlagen, dass Sie sich PDFcrop ansehen .
Wenn Sie ein PDF mit einem linken, oberen, rechten und unteren Rand von 5, 10, 20 und 30 pt (Punkten) zuschneiden möchten, führen Sie den Befehl aus
pdfcrop --margins '5 10 20 30' input.pdf output.pdf
im Terminal. Um tatsächlich etwas wegzuschneiden, verwenden Sie negative Werte im Argument für crop. Zum Beispiel,
pdfcrop --margins '-50 -50 -50 -50' input.pdf output.pdf
Erntet 50 Punkte von links, oben, rechts, unten (in dieser Reihenfolge).
Wenn Sie nur den Befehl ausführen pdfcrop input
, wird eine Datei mit dem Titel input-crop.pdf mit null Rändern ausgegeben . Ich finde das sehr praktisch, wenn ich PDF-Illustrationen in Dokumente einbinde.
Mehrere Dateien zuschneiden
Leider kann pdfcrop nicht mehrere Dateien gleichzeitig zuschneiden. Es ist jedoch einfach, ein Skript zu schreiben, das alle PDFs in dem Ordner beschneidet, in dem sich das Skript befindet.
Erstellen Sie eine neue leere Datei und rufen Sie sie auf something.sh
. Öffne es mit einem Texteditor und füge folgendes ein:
#!/bin/bash
for FILE in ./*.pdf; do
pdfcrop "${FILE}"
done
Speichern Sie es und schließen Sie es. Klicken Sie dann mit der rechten Maustaste auf die Datei, wählen Sie Eigenschaften> Berechtigungen und aktivieren Sie das Kontrollkästchen Ausführende Datei als Programm zulassen . Schließen Sie nun den Dialog. Führen Sie das Skript aus, indem Sie darauf doppelklicken und In Terminal ausführen wählen . Außerdem wird jetzt eine neue, randlose, beschnittene Version aller PDFs mit dem Suffix -crop im Ordner gedruckt. Wenn Sie Ränder oder andere Dinge wollen, können Sie natürlich einfach das Skript öffnen und anschließend Argumente hinzufügen pdfcrop
.
--bbox "<left> <bottom> <right> <top>"
. Dies ermöglicht es, den Ansatz zu verwenden, um die in meiner Antwort unten beschriebene Erntefläche zu bestimmen .
pdfcrop --help
listet die verfügbaren Optionen auf. Ich kann dort nichts sehen, das die Angabe eines Seitenbereichs ermöglicht.
Danke für Rasmus, du kannst pdfcrop aus dem Paket texlive-extra-utils installieren:
sudo apt-get install texlive-extra-utils
Anschließend können Sie PDF-Dateien mit dem Befehl pdf crop zuschneiden als:
pdfcrop input.pdf output.pdf
verwenden --help
mehr erstaunliche Parameter zu sehen , wie--margins
pdfcrop --margins 5 input.pdf output.pdf
welche PDF mit 5 bp von jeder Seite der Seite beschneiden
gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS="/ebook" -sOutputFile=output2.pdf output.pdf
danach machen, was die Dateigröße festlegte.
Sie können PDF-Dateien auch einfach mit Ghostscript zuschneiden. Ich habe ein kleines Skript geschrieben, um den Prozess zu vereinfachen (inspiriert von dieser Antwort ):
#!/bin/bash
if [ $# -lt 5 ]
then
echo "Usage: `basename $0` <pdf-file> <x_min> <x_max> <y_min> <y_max>"
echo "Notes:"
echo " - all coordinates are absolute; no calculation of width/height necessary"
echo " - use 'gv' to determine the coordinates"
exit 65
fi
file="$1"
xmin="$2"
xmax="$3"
ymin="$4"
ymax="$5"
base="${file%.*}"
outfile="${base}_cropped.pdf"
echo "writing to: $outfile"
gs \
-o $outfile \
-sDEVICE=pdfwrite \
-c "[/CropBox [$xmin $ymin $xmax $ymax] /PAGES pdfmark" \
-f $file
Um die Koordinaten für das Zuschneiden zu bestimmen, verwende ich gv
, der die Koordinaten des Mauszeigers mit den gleichen Einheiten wie Ghostscript druckt. Zum Beispiel bestimme ich hier die minimalen Koordinaten für x / y (die Werte in der oberen linken Ecke):
Nun die maximalen Koordinaten:
Und zum Schluss starte ich das Skript pdf_crop_by_coordinates.sh test.pdf 45 429 38 419
, test_cropped.pdf
das so aussieht:
Ich habe jedoch keine Ahnung, wie sich die Ghostscript-Lösung pdfcrop
im Hinblick auf Qualität und Korrektheit verhält.
Wenn ich mit pdftk nichts anfangen kann, wende ich mich als Nächstes PDFjam zu , einem Befehlszeilen-Wrapper für das LaTeX-Paket pdfpages (daher benötigen Sie das auch und eine installierte TeX-Distribution). Für Hilfe zur Verwendung empfehle ich den regulären Hilfebildschirm:
pdfjam --help
Da die Manpage spärlich ist und sich die Webseite auf Beispiele konzentriert.
Zum Zuschneiden eines PDF-Dokuments benötigen Sie folgenden Befehl:
pdfjam --keepinfo --trim "10mm 15mm 10mm 15mm" --clip true --suffix "cropped" input.pdf
Dies gibt eine aufgerufene Datei aus input-cropped.pdf
. Die Reihenfolge der Ordnungen sollte gelassen werden, unten, rechts, oben, wie pro \includegraphics
von graphicx .
Um einen Eindruck davon zu bekommen, wie es mit PDFcrop verglichen wird, musste ich kürzlich ein ziemlich ausgefallenes PDF zuschneiden. Mein Original war 675 kB, meine über PDFjam zugeschnittene Version war 1,2 MB groß, während eine über PDFcrop zugeschnittene Version 4,5 MB groß war. Während PDFjam und PDFcrop die eingebetteten Hyperlinks und Lesezeichen entfernt haben, hat PDFjam mit der --keepinfo
Option die Dokumenteigenschaften (z. B. Titel, Autor, Betreff) beibehalten.
Wenn ein grafisches Tool auch in Ordnung ist, würde ich empfehlen krop
: http://arminstraub.com/software/krop
Dies kann Ihnen helfen.
Dies steht im Einklang mit der neueren Version von Ubuntu und Life. Dies ist Master PDF Editor . Sie können es verwenden, zuschneiden, etwas hinzufügen usw.
Sie können ein pypdf-Skript von dieser Seite verwenden . Bei der Beantwortung dieser Stapelwechselfrage gibt es jedoch auch viele Optionen.
Das Programm pdfCropMargins ist eine Befehlszeilenanwendung zum automatischen Zuschneiden der Ränder von PDF-Dateien.
Dieses Programm hängt entweder vom Ghostscript-Programm oder vom Programm pdftoppm ab, das auf dem System installiert (und auffindbar) ist. Analysieren Sie die Seitenbilder mit PIL, um Begrenzungsrahmen mit dem Schwellenwert 191 zu finden.
installieren mit
pip pdfCropMargins installieren
Führen Sie mit
pdf-crop-margins -v -s -u deine-datei.pdf
Für Hilfe
pdf-crop-margins -h | Mehr