내용을 다시 처리하지 않고 두 개의 PDF 파일을 연결하려는 경우 pdftk
에 적합합니다. Mac OS X에서는 MacPorts 또는 Fink를 통해 사용할 수 있으며 Linux의 경우 모든 주요 배포판에 대한 기본 패키지가 있습니다 (Windows의 경우 여기 참조 ).
pdftk title.pdf content.pdf cat output book.pdf
title.pdf 를 content.pdf 앞에 추가하고 결과를 book.pdf에 씁니다 .
pdftk
"벙어리"이지만 두 개 이상의 PDF 파일을 연결하는 매우 빠른 방법입니다. "Dumb" 는 PDF 데이터 스트림 pdftk
을 어떤 식 으로든 해석 하지 않으므로 내부 객체 번호를 필요에 따라 다시 변환하고 PDF xref
구조 (기본적으로 PDF ToC 의 일종 임) 에 표시되도록합니다. 사물).
고스트 스크립트 :
Ghostscript를 사용하려면 동일한 두 파일을 연결하는 기본 명령은 다음과 같습니다.
gs \
-o book.pdf \
-sDEVICE=pdfwrite \
title.pdf \
content.pdf
그러나 경험 한 것처럼이 간단한 명령 줄은 이미지 품질을 떨어 뜨릴 수 있습니다. 그 이유는 PDF를 처리 할 때 Ghostscript가 '덤프'되지 않기 때문입니다. 읽을 때 PDF를 완전히 해석 하고 결과를 작성할 때 완전히 새로운 파일을 만듭니다. 결과를 작성하기 위해 전체 처리에서 많은 세부 사항에 대해 기본 설정을 자동으로 사용합니다. 이 기본값은 호출이 Ghostscript에 다른 지시를하지 않은 모든 경우에 적용됩니다.
따라서 새로운 book.pdf 를 만드는 Ghostscript의 방법은의 방법 보다 훨씬 "지능적인"(그러나 훨씬 느리다) 것 pdftk
입니다. (많은 경우에 Ghostscript가 PDF 파일을 "복구"할 수있는 범위 내에서 또는 입력 PDF에 포함되지 않은 출력 PDF에 글꼴을 포함 시키거나 중복 이미지를 제거하여 대체 할 수있는 이유이기도합니다. 단순히 참조 등으로-전체적으로 부풀린 입력 PDF에서 작고 더 최적화 된 파일을 만들었습니다 ...)
해결책은 명령 줄에 더 많은 사용자 정의 매개 변수를 추가하여 Ghostscript가 기본값을 사용하지 않도록하는 것입니다.
"Ghostscript가 PDF 입력을 '해석'" 이란 무엇입니까 ?
PDF 파일로 결과 PDF를 다시 추출하기 전에 모든 파일과 그 내용 (개체, 스트림, 글꼴, 이미지 등)을 자체 내부 표현으로 읽고 확인하고 보유합니다. 그러나 '분리'할 때 Ghostscript 는 사용 가능한 수백 개의 매개 변수 [*]에 대한 모든 내부 기본 설정을 적용합니다 .
불행히도,이 기본 설정에 따라 이미지를 "재 처리"합니다.이 명령은 고유 한 (원하는) 명령 줄 매개 변수를 추가하여 피하거나 무시할 수 있습니다.
JPEG2000 이미지를 JPEG 인코딩으로 다시 인코딩하려면 라이센스 문제로 인해 Ghostscript가 필요하기 때문에 이미지 문제가 발생할 수 있습니다. 이를 피하려면 명령 줄에 다음을 추가하십시오.
-dAutoFilterColorImages=false \
-dAutoFilterGrayImages=false \
-dColorImageFilter=/FlateEncode \
-dGrayImageFilter=/FlateEncode \
고려해야 할 다른 이미지 관련 명령 줄 옵션은 다음과 같습니다.
-dColorConversionStrategy=/LeaveColorUnchanged \
-dDownsampleMonoImages=false \
-dDownsampleGrayImages=false \
-dDownsampleColorImages=false \
따라서 여러분을 행복하게 해줄 수있는 완전한 Ghostscript 명령 줄은 다음과 같습니다.
gs \
-o book.pdf \
-sDEVICE=pdfwrite \
-dColorConversionStrategy=/LeaveColorUnchanged \
-dDownsampleMonoImages=false \
-dDownsampleGrayImages=false \
-dDownsampleColorImages=false \
-dAutoFilterColorImages=false \
-dAutoFilterGrayImages=false \
-dColorImageFilter=/FlateEncode \
-dGrayImageFilter=/FlateEncode \
title.pdf \
content.pdf
다음 명령 줄을 사용하여 출력 PDF에서 이미지를 전혀 압축하지 않도록 Ghostscript에 지시 할 수도 있습니다 .
gs \
-o book.pdf \
-sDEVICE=pdfwrite \
-dColorConversionStrategy=/LeaveColorUnchanged \
-dEncodeColorImages=false \
-dEncodeGrayImages=false \
-dEncodeMonoImages=false \
title.pdf \
content.pdf
.
[*] : Ghostscript의 pdfwrite 장치가 사용
하는 전체 기본 설정 목록에 대해 알아 보려면 다음 명령을 실행하십시오. 전체 목록을 반환 합니다.
gs \
-sDEVICE=pdfwrite \
-o /dev/null \
-c "currentpagedevice { exch ==only ( ) print == } forall"
이러한 모든 매개 변수의 의미에 대한 설명을 보려면 "Distiller Parameters"에 대한 Adobe 설명서 를 읽어야합니다 . 고스트 스크립트는이 모든 것을 모방하려고 매우 노력합니다.