web-dev-qa-db-ja.com

pdftkflattenは入力可能なフィールドデータを失います

Linuxコマンドラインですでに入力されているフィールドを使用してPDFをフラット化するソリューションを見つけようとしています。最初はGhostScriptをいじっていましたが、すべてのフィールドデータをガベージ文字に変換する傾向があることがわかりました。

このコマンドを実行すると

pdftk foo.pdf output bar.pdf flatten

bar.pdfをPDFリーダーで開きます。フラット化されていますが、フィールドにあったデータは単に存在しません。PDF is記入されていない場合と同じですが、記入可能なフィールドがあります。

ここに欠けているものはありますか?

私がGoogleで見つけたすべての解決策は、空のフォームに.fdfファイルを入力することですが、これは私の状況にはあまり関係ありません。

4
Justin

私はこの解決策をつなぎ合わせることができました。

flattenpdf() {
  if [[ $# -ne 2 ]]
  then
    echo "Usage: flattenpdf input.pdf output.pdf"
    return 1
  fi
  temp=$(mktemp)
  pdftk "$1" generate_fdf output ${temp} 
  pdftk "$1" fill_form ${temp} output "$2" flatten
  rm ${temp}
}

Pdftkを使用して入力されたpdfからfdfファイルを生成し、2回目の実行でそのファイルを使用してフラット化します。そもそもpdftkがこのようなことをしない理由は私を超えています。

2
Daniel Landau