img2pdf
수백 개의 이미지를 매우 빠르게 처리하고 다음과 같은 명령을 사용하여 PDF로 만들 수 있습니다.
img2pdf *.tif -o out.pdf
하지만 내 경우에는 페이지 순서가 잘못되었습니다. konsole
Kubuntu 20.04에서 이 명령을 실행했습니다 .
이미지 파일은 다음 형식으로 이름이 지정됩니다(돌핀 파일 관리자에서 이름이 변경됨).
Vol_1.tif
Vol_2.tif
Vol_3.tif
...
Vol_430.tif
생성된 PDF는 호출되는 파일/페이지에서 시작합니다. Vol_100.tif
이는 의미가 있습니다(1 또는 11 앞에 100이 표시됨). 그러면 호출 뒤에 있는 사람 Vol_119.tif
은 이고 Vol_11.tif
, Vol_129.tif
뒤에 있는 사람은 Vol_12.tif
... Vol_189.tif
뒤에 있는 사람은 입니다 Vol_18.tif
.
어떻게 진행하나요?
답변1
가장 좋은 방법은 Perl 유틸리티를 사용하여 파일 이름을 바꾸어 모두가 동일한 수의 0으로 채워진 숫자 ( , , rename
등을 포함한 배포판마다 다른 이름 )를 갖도록 하는 것입니다. 예를 들어:perl-rename
prename
file-rename
rename -n 's/^(Vol_)(\d+)/sprintf "%s%03i", $1, $2/e' Vol_*.tif
세 자리 제로 패딩이 충분하지 않은 경우 또는 %03i
로 변경하세요 %04i
.%05i
이 -n
옵션을 사용하면 이름이 바뀌는 항목만 표시됩니다. 원하는 대로 작동한다고 확신하는 경우 제거하여 -n
파일 이름을 자동으로 바꾸거나(오류 외에는 출력되지 않음) -v
자세한 작업으로 바꾸십시오.
를 사용하면 -v
다음과 같은 출력이 표시됩니다.
$ rename -v 's/^(Vol_)(\d+)/sprintf "%s%03i", $1, $2/e' Vol_*.tif
Vol_1.tif renamed as Vol_001.tif
Vol_2.tif renamed as Vol_002.tif
Vol_50.tif renamed as Vol_050.tif
Vol_60.tif renamed as Vol_060.tif
find
또 다른 옵션은 파일 이름을 자연스럽게 정렬하는 것입니다. 따라서 GNU 및 (또는 NUL 구분 기호를 지원하는 다른 버전)을 sort
사용해야 합니다 .xargs
예를 들어
find . -name 'Vol_*.tif' -print0 | sort -z -V | xargs -0r img2pdf -o out.pdf
GNU 정렬 -V
옵션은 "버전" 정렬이며, 이는 자연 정렬의 이름입니다.
답변2
셸을 사용하여 올바른 순서로 파일 이름을 확장할 수 있습니다.
Bash에서 숫자 범위를 알고 있으면 중괄호 확장을 사용할 수 있습니다.
img2pdf Vol_{1..430}.tif -o out.pdf
또는 일반 와일드카드를 사용하고 먼저 한 자리 숫자를 원한다고 말하면 됩니다.
img2pdf Vol_?.tif Vol_??.tif Vol_???.tif -o out.pdf