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 .