imagemagick을 사용하여 이미지를 이미지 pdf
로 변환하려면 다음을 수행합니다.png
convert -trim -density 400 this_is_a_very_long_filename_of_my_pdf_file.pdf this_is_a_very_long_filename_of_my_pdf_file.png
png
어떤 이유로 PDF 파일은 일반적으로 긴 파일 이름을 가지며 파일의 확장자를 제외하고 동일한 이름을 갖기를 원합니다 .
일반적으로 this_is_a_very_long_filename_of_my_pdf_file.pdf
탭 선택을 두 번 수행한 zsh-menu
다음 두 번째 매개변수를 수동으로 pdf
변경합니다 .png
하지만 이 작업을 수행하는 더 빠른 방법이 있습니까?
답변1
당신은 그것을 사용할 수 있습니다버팀대 확장:
convert -trim -density 400 this_is_a_very_long_filename_of_my_pdf_file.{pdf,png}
답변2
mogrify를 호출하면 pdf를 덮어쓰는 대신 새 png 파일이 생성됩니다. 바라건대;)
mogrify -trim density 400 -format png th*.pdf
th*.pdf의 경우 적절한 수의 문자를 사용하여 올바른 파일을 선택하거나 전체 이름을 얻을 때까지 탭 완성을 수행하는 것이 더 좋습니다.
이렇게 하면 png 매개변수까지 전체 명령에 대한 별칭을 만들 수 있습니다.
답변3
항상 동일한 명령을 사용하지만 약간의 변경(예: 파일 이름)을 적용한 경우 다음과 같이 함수를 작성할 수 있습니다.
pdf2png() { convert -trim -density 400 "$1" "$1:r.png" }
(이 함수는 에만 적용됩니다 zsh
.) 변환하려는 각 파일 your_file.pdf에 대해 다음을 수행합니다.
pdf2png your_file.pdf
참고 1: 다른 쉘에도 동일한 유형의 함수를 작성할 수 있지만 약간 복잡합니다.
zsh
참고 2: 의 경우 따옴표는 이 옵션이 설정된 경우에만 유용합니다 (기본값은 아님) .SH_WORD_SPLIT
답변4
당신은 또한 사용할 수 있습니다역사적 확장현재 명령줄의 단어 인용:
convert -trim -density 400 this_is_a_very_long_filename_of_my_pdf_file.pdf !#:$:r.png
- 이벤트 표시기
!#
지금까지 입력한 명령줄을 참조합니다. - 단어 표시기
$
마지막 단어를 나타냅니다(확장 전). - 수정자
r
파일 확장자를 제거합니다. 이는 또한 역사적 확장이 발생할 때 대체될 텍스트의 끝을 표시합니다. .png
새로운 확장입니다. 이는 확장 자체의 일부가 아닙니다.
이 줄이 실행되면 !#:$:r
확장자를 뺀 pdf 파일 이름으로 대체되어 질문에 따라 명령이 생성됩니다.
convert -trim -density 400 this_is_a_very_long_filename_of_my_pdf_file.pdf this_is_a_very_long_filename_of_my_pdf_file.png
그런 다음 이 줄을 직접 실행하세요.
히스토리 확장 후 명령을 확인하려면 실행하기 전에 다음을 사용하십시오.
setopt histverify
그러면 확장된 행이 실행되는 대신 편집 버퍼로 다시 로드됩니다.
참고: 다른 확장과 달리 히스토리 확장은 명령이 히스토리에 저장되기 전에 실행됩니다. 따라서 귀하 대신 echo !#
으로 표시됩니다 .echo echo
echo !#
$HISTFILE