Como fazer com que o ghostscript não limpe os metadados do PDF

10

Ghostscript apaga os metadados do PDF como author, title, subject etc. Como posso dizer ao ghostscript para não tocar nos metadados? Eu invoco da seguinte forma:

gs \
  -dBATCH                    \
  -dNOPAUSE                  \
  -sOutputFile=<output_file> \
  -sDEVICE=pdfwrite          \
  -dPDFSETTINGS=/ebook       \
  <input_file>
    
por Marco 10.10.2012 / 16:17

1 resposta

6

Aparentemente, não é possível manter os metadados do PDF ao usar ghostscript. Aqui está uma solução que primeiro salva os metadados para um arquivo usando pdftk e, em seguida, compacta o arquivo com ghostscript e finalmente grava os metadados usando também 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"

Editar: Este é um bug no ghostscript, consulte Relatório de erros e a confirmação de que isso não deveria acontecer .

    
por 12.10.2012 / 14:28