김프에서는 PDF를 가져오고 Flatten Image
GUI를 사용하여 드롭다운 메뉴에서 선택하여 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
pdf2ps
convert
저에게는 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를 병합하는 스크립트를 만듭니다.
- 노틸러스 스크립트 폴더로 이동
~/.local/share/nautilus/scripts/
- 새 셸 스크립트 파일 만들기(예
FlattenPDF.sh
: ) - 파일을 실행 가능하게 만듭니다(예: Natiuls
Properties
→Permissions
→Allow executing file as program
) - 파일에 다음 텍스트를 삽입합니다.
#!/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를 생성하는 스크립트를 만듭니다.
- 노틸러스 스크립트 폴더로 이동
~/.local/share/nautilus/scripts/
- 새 셸 스크립트 파일 만들기(예
ImageOnlyPDF.sh
: ) - 파일을 실행 가능하게 만듭니다(예: Natiuls
Properties
→Permissions
→Allow executing file as program
) - 파일에 다음 텍스트를 삽입합니다.
#!/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 -q
Exit Nautilus를 입력한 다음 Dash에서 Nautilus를 다시 엽니다). 파일을 마우스 오른쪽 버튼으로 클릭하면 Scripts
새 스크립트가 포함된 메뉴가 표시됩니다.