it-swarm.com.de

Befehlszeilenprogramm zum Zuschneiden von PDF Dateien

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.

100
Rakesh

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 pdfcrop input ausführen, 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 nennen Sie sie 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, gehen Sie zu Eigenschaften> Berechtigungen und aktivieren Sie das Kontrollkästchen Datei als Programm ausführen lassen . Schließen Sie nun den Dialog. Führen Sie das Skript aus, indem Sie darauf doppelklicken und In Terminal ausführen wählen. Eine neue, randlose, beschnittene Version aller PDFs mit dem Suffix - crop wird jetzt im Ordner gedruckt. Wenn Sie Ränder oder andere Dinge wünschen, können Sie natürlich einfach das Skript öffnen und nach pdfcrop Argumente hinzufügen.

123
Rasmus

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

benutze --help, um verblüffendere Parameter wie --margins zu sehen

pdfcrop --margins 5 input.pdf output.pdf

welche PDF mit 5 bp von jeder Seite der Seite beschneiden

35
sarigalin

Sie können PDF Dateien auch einfach mit Ghostscript zuschneiden. Ich habe ein kleines Skript geschrieben, um den Prozess zu vereinfachen (inspiriert von diese 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, das die Koordinaten des Mauszeigers mit denselben Einheiten wie Ghostscript ausgibt. Zum Beispiel bestimme ich hier die minimalen Koordinaten für x/y (die Werte in der oberen linken Ecke):

crop1

Nun die maximalen Koordinaten:

crop2

Und zum Schluss starte ich das Skript pdf_crop_by_coordinates.sh test.pdf 45 429 38 419 und produziere einen test_cropped.pdf, der so aussieht:

result

Ich habe jedoch keine Ahnung, wie sich die Ghostscript-Lösung in Bezug auf Qualität und Korrektheit im Vergleich zu pdfcrop verhält.

17
bluenote10

Wenn ich mit pdftk nichts anfangen kann, wende ich mich als Nächstes an PDFjam , einen Befehlszeilen-Wrapper für das LaTeX-Paket pdfpages (daher benötigen Sie das auch) und eine TeX-Distribution installiert). 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 einer PDF-Datei benötigen Sie einen Befehl wie den folgenden:

pdfjam --keepinfo --trim "10mm 15mm 10mm 15mm" --clip true --suffix "cropped" input.pdf

Dadurch wird eine Datei mit dem Namen input-cropped.pdf ausgegeben. Die Reihenfolge der Schnitte sollte links, unten, rechts, oben laut \includegraphics from graphicx sein.

Um einen Eindruck davon zu bekommen, wie es mit PDFcrop zu vergleichen ist, hatte ich kürzlich Anlass, ein ziemlich ausgefallenes PDF zu beschneiden. 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 Option --keepinfo die Dokumenteigenschaften (z. B. Titel, Autor, Betreff) beibehalten.

15
Alex Ball

Wenn ein grafisches Tool auch in Ordnung ist, würde ich krop empfehlen: http://arminstraub.com/software/krop

3
Sunday

Dies kann Ihnen helfen.
Dies stimmt mit der neueren Version von Ubuntu und Life überein. Dies ist Master PDF Editor . Sie können es verwenden, zuschneiden, etwas hinzufügen usw.

Beispiel:
Dies ist vor This is before Dies ist nach Strg + k enter image description here

3
Shamina

Sie können ein pypdf-Skript von dieser Seite verwenden. Aber bei der Antwort auf diese Stapelwechsel-Frage gibt es anscheinend auch viele Optionen.

2
xubuntix

Das Programm pdfCropMargins ist eine Befehlszeilenanwendung zum automatischen Beschneiden 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

2
CharmiChokshi

Briss ist keine Kommandozeile, aber einen Blick wert.

2
weberjn