명령줄에서 .pdf 이미지를 병합하는 방법이 있습니까?

명령줄에서 .pdf 이미지를 병합하는 방법이 있습니까?

김프에서는 PDF를 가져오고 Flatten ImageGUI를 사용하여 드롭다운 메뉴에서 선택하여 PDF를 병합할 수 있습니다(여러 레이어로 만들어진 경우) Image. 그런 다음 새 파일 이름을 사용하여 PDF를 내보낼 수 있습니다.

나는 이것을 자동화하고 싶다. 터미널을 통해 이를 수행할 수 있는 방법이 있습니까?

답변1

Google을 통해 다음 두 가지 방법을 찾았습니다.Re: UNIX 명령줄에서 PDF 파일을 병합합니다..

방법 #1 - Imagemagick을 사용하여 변환:
$ convert -density 300 orig.pdf flattened.pdf 

노트:이 방법은 평균 품질인 것으로 보고되었습니다.

방법 #2 - pdf2ps 사용 -> ps2pdf:
$ pdf2ps orig.pdf - | ps2pdf - flattened.pdf

노트:이 방식은 화질을 유지하는 것으로 알려졌다.

답변2

pdf2psconvert저에게는 Ghostscript(gs)가 더 잘 작동합니다. 품질 저하가 거의 없으며 파일 크기도 작습니다.

gs -dSAFER -dBATCH -dNOPAUSE -dNOCACHE -sDEVICE=pdfwrite \
-sColorConversionStrategy=/LeaveColorUnchanged  \
-dAutoFilterColorImages=true \
-dAutoFilterGrayImages=true \
-dDownsampleMonoImages=true \
-dDownsampleGrayImages=true \
-dDownsampleColorImages=true \
-sOutputFile=document_flat.pdf document_original.pdf

확립된여기. /이전에 삭제하는 것에 대한 설명을 참고하세요 LeaveColorUnchanged.

답변3

Ghostscript는 2016년 후반에 단순 주석의 기본 설정을 변경했습니다.

이제 필요한 PDF를 간단히 병합하려면-dPreserveAnnots=false

이제 간단한 명령줄

gs -dSAFER -dBATCH -dNOPAUSE -dNOCACHE -sDEVICE=pdfwrite \
-dPreserveAnnots=false \
-sOutputFile=document_flat.pdf document_original.pdf

답변4

PDF를 병합하거나 이미지만 포함해야 하는 경우가 많습니다. 터미널로 들어가는 것보다 노틸러스에서 빨리 하고 싶어서 2개를 만들었습니다.노틸러스 스크립트이전 답변을 기반으로 합니다. 다른 사람들에게 도움이 될 수 있도록 이 지침을 공유하고 있습니다.

PDF를 병합하는 스크립트를 만듭니다.

  1. 노틸러스 스크립트 폴더로 이동~/.local/share/nautilus/scripts/
  2. 새 셸 스크립트 파일 만들기(예 FlattenPDF.sh: )
  3. 파일을 실행 가능하게 만듭니다(예: Natiuls PropertiesPermissionsAllow executing file as program)
  4. 파일에 다음 텍스트를 삽입합니다.

#!/bin/bash

# Flattend PDFs    

IFS='
'
for file in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
do
  if [ -f "$file" ]; then
    base=${file%.*}
    ext=${file##*.}
    newname=${base}_flat.pdf
    gs -dSAFER -dBATCH -dNOPAUSE -dNOCACHE -sDEVICE=pdfwrite -dPreserveAnnots=false -sOutputFile=$newname $file
  fi
done

이미지 전용(검색 또는 선택이 불가능한 텍스트) PDF를 생성하는 스크립트를 만듭니다.

  1. 노틸러스 스크립트 폴더로 이동~/.local/share/nautilus/scripts/
  2. 새 셸 스크립트 파일 만들기(예 ImageOnlyPDF.sh: )
  3. 파일을 실행 가능하게 만듭니다(예: Natiuls PropertiesPermissionsAllow executing file as program)
  4. 파일에 다음 텍스트를 삽입합니다.

#!/bin/bash

# Image-only PDFs    

IFS='
'
for file in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
do
  if [ -f "$file" ]; then
    base=${file%.*}
    ext=${file##*.}
    newname=${base}_img.pdf
    gconvert -density 200 $file $newname
  fi
done

Nautilus를 다시 시작합니다(예: nautilus -qExit Nautilus를 입력한 다음 Dash에서 Nautilus를 다시 엽니다). 파일을 마우스 오른쪽 버튼으로 클릭하면 Scripts새 스크립트가 포함된 메뉴가 표시됩니다.

관련 정보