고스트 스크립트가 PDF 메타 데이터를 지우지 않도록하는 방법


10

Ghostscript는 PDF 메타 데이터 author, title, subject등을 지 웁니다. Ghostscript 가 메타 데이터를 건드리지 않도록하려면 어떻게해야합니까? 다음과 같이 호출합니다.

gs \
  -dBATCH                    \
  -dNOPAUSE                  \
  -sOutputFile=<output_file> \
  -sDEVICE=pdfwrite          \
  -dPDFSETTINGS=/ebook       \
  <input_file>

왜 Ghostscript를 사용하고 있습니까? 당신이하고있는 일을 할 수있는 또 다른 방법이있을 것입니다. 입력이 포스트 스크립트 파일이 아닌 경우 고스트 스크립트를 사용하는 것은 일반적이지 않습니다.
Gilles 'SO- 악마 그만해

3
@Gilles PDF에서 이미지를 다운 샘플링하여 크기를 줄입니다. PDF를 입력으로 사용하는 것이 일반적이지 않다고 생각합니다. pdf2ps예를 들어 도구 는 변환에 고스트 스크립트를 사용하며 함께 제공됩니다 gs.
Marco

자, Ghostscript는 PDF 파일에서 이미지를 다운 샘플링하는 일반적인 방법 인 것 같습니다. 오픈 소스 기본 PDF 조작 도구는 그 점에서 부족한 것 같습니다. 이미지 만보고 PDF 메타 데이터는 신경 쓰지 않는 ImageMagick입니다.
Gilles 'SO- 악한 중지'10

2
ImageMagick은 고스트 스크립트를 사용하여 PDF를 처리합니다.
Marco

@Gilles : "입력이 Postscript 파일이 아닌 경우 Ghostscript를 사용하는 것은 일반적이지 않습니다." 아냐, 질! 매일 PDF-> PDF 처리를하기 위해 항상 사용합니다.
Kurt Pfeifle

답변:


6

고스트 스크립트를 사용할 때는 PDF 메타 데이터를 유지할 수 없습니다. 다음을 사용하여 먼저 메타 데이터를 파일에 저장 pdftk한 다음 파일을 압축하고 ghostscript 를 사용하여 메타 데이터를 다시 쓰는 해결 방법이 있습니다 pdftk.

INPUTPDF=<input_file>
OUTPUTPDF=<output_file>
TMPPDF=$(mktemp)
METADATA=$(mktemp)

# save metadata
pdftk "$INPUTPDF" dump_data_utf8 > "$METADATA"

# compress
gs                       \
  -q                     \
  -sOutputFile="$TMPPDF" \
  -sDEVICE=pdfwrite      \
  -dNOPAUSE              \
  -dBATCH                \
  -dPDFSETTINGS=/ebook   \
  "$INPUTPDF"

# restore metadata
pdftk "$TMPPDF" update_info_utf8 "$METADATA" output "$OUTPUTPDF"

# clean up
rm -f "$TMPPDF" "$METADATA"

편집 : 이것은 고스트 스크립트의 버그입니다. 버그 보고서이것이 일어나지 않아야한다는 확인을 참조하십시오 .


pdftks dump_data (_utf8)는 문자 그대로 중국어 레이블을 출력합니다. pdftk에 대한 포럼을 찾을 수 없습니다 :(
Stefan K.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.