명령 행에서 .pdf 이미지를 평평하게하는 방법이 있습니까?


19

김프에서는 .pdf를 가져 와서 GUI를 사용하여 "이미지"드롭 다운 메뉴에서 "플래 튼 이미지"를 선택하여 여러 레이어로 만든 경우이를 평평하게 만들 수 있습니다. 그런 다음 새 파일 이름으로 .pdf를 내보낼 수 있습니다.

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


1
imagemagick을 설치하고 man mogrify-im6, montage-im6, display-im6, stream-im6, verify-im6, import-im6, conjure-im6, composite-im6, convert-im6, animate-im6 및 compare-im6을 읽으십시오.
PersianGulf

답변:


25

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

방법 # 1-Imagemagick의 변환 사용 :
$ convert orig.pdf flattened.pdf 

참고 : 이 접근 방식에서는 품질이 그렇게보고됩니다.

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

참고 : 이 방법은 이미지 품질을 유지하는 것으로보고되었습니다.


1
두 번째 김프보다 더 나은 품질-감사합니다!
generic_user 2018 년

@ACD-알아두면 좋습니다. 그것이 당신의 Q.를 해결하게 된 것을 기쁘게 생각합니다.
slm

2
방법 1은 매우 희미한 이미지를 생성하는 반면 방법 2는 완벽하게 작동했습니다.
Severyn Kozak 2016 년

1
불행히도, 방법 # 2는 이미지를 래스터 화하지 않으므로 민감한 부분을 차단하려는 경우 사용자는 여전히 문서를 열고 레이어를 제거 할 수 있습니다 (잉크 스케이프와 같은). 그러나 방법 # 1의 해결 방법을 수정할 수 있습니다. $ convert -density 150 {original,flattened}.pdf 디스크 공간을 보존해야 할 경우 -type Grayscale또는 -monochrome그와 같은 것을 사용할 수 있습니다 .
eacousineau

1
방법 # 2가 훨씬 높은 해상도로 수행하지만 두 방법 모두 pdf를 래스터 화합니다. 따라서 이러한 방법 중 어느 것도 만족스럽지 않습니다.
Ant

18

고스트 스크립트 (GS)는보다 더 일을 pdf2ps하고 convert나를 위해. 품질이 거의 저하되지 않았고 파일 크기가 작습니다.

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

여기에서 찾을 수 있습니다 : http://zeroset.mnim.org/2015/01/07/flatten-pdfs-with-ghostscript/


이 방법은 훌륭하게 작동하며 pdf는 래스터 화되지 않으며 텍스트는 텍스트로 보존됩니다.
Ant

2
평탄화를 통해 투명도 레이어를 제거하기 위해 이것을 사용하려고 시도했지만 효과가 없었습니다.
mikemtnbikes

그것은 나를 위해 글꼴을 변경했지만 다른 제안 된 방법보다 훨씬 더 나은 해상도입니다.
ste

1

변환은 동일한 파일 크기를 유지하지만 느리다는 것을 알았습니다.

pdf2ps ps2pdf 방법이 더 빠르지 만 파일 크기가 커지고 있음을 알았습니다.

pdftk는 빠를뿐만 아니라 비슷한 파일 크기를 유지하기 때문에 좋습니다.

이것이 디렉토리를 대량 평평하게하는 데 사용하는 것입니다.

    function pdfflatten () {
        pdftk "$1" output "$2" flatten
    }
    export pdfflatten
    alias pdfflattenDIR='mkdir flattenedPDFs; for i in `seq $(ls *.pdf | wc -l)`; do a=`ls *.pdf | head -$i | tail -1`; pdfflatten "$a" flattenedPDFs/"$a"; done'

pdftk flatten은 PDF 내의 이미지를 변경 하지 않습니다 . 문서에서 "입력 PDF의 대화 형 양식 필드 (및 해당 데이터)를 PDF 페이지와 병합"
Aidan Kane

1
분명히하기 위해이 방법은 투명 레이어를 평평하게하지 않습니다 (위에 표시된 것처럼).
mikemtnbikes
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.