Szukam narzędzia wiersza polecenia typu open source do przycinania plików PDF, tak jak możemy to zrobić w programie Adobe Acrobat Pro. Wypróbowałem PdfTk, ImageMagick, PyPDF i GhostScript - wszystkie bez powodzenia.
Szukam narzędzia wiersza polecenia typu open source do przycinania plików PDF, tak jak możemy to zrobić w programie Adobe Acrobat Pro. Wypróbowałem PdfTk, ImageMagick, PyPDF i GhostScript - wszystkie bez powodzenia.
Odpowiedzi:
Proponuję rzucić okiem na PDFcrop .
Jeśli chcesz przyciąć plik PDF z lewym, górnym, prawym i dolnym marginesem 5, 10, 20 i 30 pkt (punktów), a następnie uruchom
pdfcrop --margins '5 10 20 30' input.pdf output.pdf
w terminalu. Aby faktycznie przyciąć coś, użyj ujemnych wartości w argumencie argumentu za uprawą. Na przykład,
pdfcrop --margins '-50 -50 -50 -50' input.pdf output.pdf
przycina 50 pkt od lewej, od góry, od prawej, od dołu (w tej kolejności).
Jeśli uruchomisz tylko polecenie pdfcrop input
, wyświetli się plik o nazwie input-crop.pdf z zerowymi marginesami. Uważam to za bardzo przydatne, gdy dołączam ilustracje pdf do dokumentów.
Przycinanie wielu plików
Niestety, pdfcrop nie może przyciąć wielu plików jednocześnie. Łatwo jest jednak napisać skrypt, który wycina wszystkie pliki pdf w folderze, w którym znajduje się skrypt.
Utwórz nowy pusty plik i wywołaj go something.sh
. Otwórz go za pomocą edytora tekstu i wstaw następujące elementy:
#!/bin/bash
for FILE in ./*.pdf; do
pdfcrop "${FILE}"
done
Zapisz i zamknij. Następnie kliknij plik prawym przyciskiem myszy, przejdź do Właściwości> Uprawnienia i zaznacz pole Zezwalaj na uruchamianie pliku jako programu . Teraz zamknij okno dialogowe. Uruchom skrypt, klikając go dwukrotnie i wybierając Uruchom w terminalu . W folderze zostanie teraz wydrukowana nowa, przycięta zera wersja wszystkich plików pdf z przyrostkiem -crop . Jeśli chcesz marginesów lub innych rzeczy, możesz oczywiście po prostu otworzyć skrypt i dodać później argumenty pdfcrop
.
--bbox "<left> <bottom> <right> <top>"
. Pozwala to na zastosowanie tego podejścia do określenia obszaru uprawy opisanego w mojej odpowiedzi poniżej .
pdfcrop --help
wyświetla dostępne opcje. Nie widzę tam niczego, co pozwoliłoby na określenie zakresu stron.
Dzięki za Rasmus, możesz zainstalować pdfcrop z pakietu texlive-extra-utils:
sudo apt-get install texlive-extra-utils
Następnie przytnij pliki pdf za pomocą polecenia pdf crop jako:
pdfcrop input.pdf output.pdf
użyj, --help
aby zobaczyć więcej niesamowitych parametrów takich jak--margins
pdfcrop --margins 5 input.pdf output.pdf
które przycinają pdf z 5 pz z każdej strony strony
gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS="/ebook" -sOutputFile=output2.pdf output.pdf
później, co naprawiło rozmiar pliku.
Możesz także przycinać pliki PDF po prostu za pomocą Ghostscript. Napisałem mały skrypt, aby uprościć proces (zainspirowany tą odpowiedzią ):
#!/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
Aby określić współrzędne przycinania, używam gv
, który drukuje współrzędne kursora myszy przy użyciu tych samych jednostek, co Ghostscript. Na przykład tutaj określam minimalne współrzędne dla x / y (wartości w lewym górnym rogu):
Teraz maksymalne współrzędne:
I wreszcie, uruchomić skrypt pdf_crop_by_coordinates.sh test.pdf 45 429 38 419
wytwarzania test_cropped.pdf
który wygląda tak:
Nie mam jednak pojęcia, jak porównuje się rozwiązanie Ghostscript pdfcrop
pod względem jakości i poprawności.
Kiedy nie mogę nic zrobić z pdftk, następnym miejscem , w którym się obracam , jest PDFjam , który jest opakowaniem wiersza poleceń dla pakietu LaTeX pdfpages (stąd też potrzebujesz tego i zainstalowanej dystrybucji TeXa). Aby uzyskać pomoc dotyczącą korzystania z niego, polecam zwykły ekran pomocy:
pdfjam --help
ponieważ strona podręcznika jest rzadka, a strona internetowa koncentruje się na przykładach.
Aby przyciąć plik PDF, potrzebne jest następujące polecenie:
pdfjam --keepinfo --trim "10mm 15mm 10mm 15mm" --clip true --suffix "cropped" input.pdf
Spowoduje to wygenerowanie pliku o nazwie input-cropped.pdf
. Kolejność wykończeń powinna być lewa, dolna, prawa, górna, zgodnie \includegraphics
z grafiką .
Aby dać wyobrażenie o tym, jak to wygląda w porównaniu z PDFcrop, miałem ostatnio okazję wyciąć dość fantazyjny PDF. Mój oryginał miał rozmiar 675 kB, moja przycięta wersja przez PDFjam wynosiła 1,2 MB, a wersja przycięta przez PDFcrop - 4,5 MB. Podczas gdy zarówno PDFjam, jak i PDFcrop usunęły osadzone hiperłącza i zakładki, PDFjam z --keepinfo
opcją zachował właściwości dokumentu (np. Tytuł, autor, temat).
Jeśli narzędzie graficzne jest również w porządku, polecam krop
: http://arminstraub.com/software/krop
To może ci pomóc.
Jest to zgodne z nowszą wersją Ubuntu i life. To jest główny edytor PDF . Możesz go użyć do przycięcia, dodać trochę rzeczy itp.
Możesz użyć skryptu pypdf z tej strony . Ale w odpowiedzi na to pytanie dotyczące wymiany stosów wydaje się, że istnieje wiele opcji.
Program pdfCropMargins to aplikacja wiersza polecenia do automatycznego przycinania marginesów plików PDF.
Ten program zależy od zainstalowanego (i zlokalizowanego) programu Ghostscript lub programu pdftoppm w systemie. I przeanalizuj obrazy stron za pomocą PIL, aby znaleźć obwiednie, używając progu 191.
zainstaluj za pomocą
pip zainstaluj pdfCropMargins
Uruchom za pomocą
pdf-crop-margins -v -s -u twój-plik.pdf
O pomoc
pdf-crop-margins -h | więcej