Linux のコマンド ラインで、すでに入力済みのフィールドを持つ PDF をフラット化するソリューションを模索しています。最初は GhostScript を試していたのですが、フィールド データがすべて文字化けする傾向があることがわかりました。
このコマンドを実行すると
pdftk foo.pdf output bar.pdf flatten
PDF リーダーで開くとbar.pdf
、フラット化されますが、フィールドにあったデータは表示されません。入力可能なフィールドを除いて、PDF は入力されていない状態と同じです。
何か見落としている点はありますか?
Google で見つけた解決策はすべて、空のフォームに.fdf
ファイルを入力するというもので、私の状況には当てはまりません。
答え1
私はこの解決策をまとめることができました。
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 がこのような処理を行わないのはなぜか、私には理解できません。