Chcę napisać bash
skrypt, aby przekonwertować każdy .pdf
plik w bieżącym katalogu na .png
plik. Na przykład:
$ls .
a.pdf b.pdf
$./pdf2png.sh
Converting pdfs to pngs
a.pdf -> a.png
b.pdf -> b.png
To moja najlepsza próba:
#!/bin/bash
convert -verbose -density 500 -resize '800' a.pdf a.png
convert -verbose -density 500 -resize '800' b.pdf b.png
bash
imagemagick
Lubię kodować
źródło
źródło
find . -type f -name '*.pdf' -exec sh -c 'for f do convert -verbose -density 500 -resize 800 "$f" "${f%.pdf}.png"; done' find-sh {} +
Zobacz unix.stackexchange.com/a/321753/135943 dla wyjaśnienia i tła.-printf
, więc wszystko, czego potrzebujesz do przenośności, to zastąpić ją `-exec printf '% s \ 0' {} +`.Możesz użyć
for
pętli bash w następujący sposób:źródło
Możesz użyć
mogrify
do konwersji partii i zmiany rozmiaru wszystkich.pdf
s w bieżącym katalogu:W przypadku użycia innego
format
(w tym przypadku-format png
) oryginału.pdf
pozostawia się nietknięte, pliki wyjściowe mają tę samą nazwę, z wyjątkiem rozszerzenia, które zostanie zmienione na określone przezformat
.źródło
Jeśli nie jesteś ograniczony do używania bash, możesz użyć skryptu python do konwersji wszystkich
.pdf
plików w bieżącym katalogu na.png
obrazy o wysokiej rozdzielczości . Można go zmodyfikować dla innych typów obrazów wejściowych / wyjściowych lub użyć różnych argumentówconvert
.źródło