Linuxコマンドラインですでに入力されているフィールドを使用してPDFをフラット化するソリューションを見つけようとしています。最初はGhostScriptをいじっていましたが、すべてのフィールドデータをガベージ文字に変換する傾向があることがわかりました。
このコマンドを実行すると
pdftk foo.pdf output bar.pdf flatten
bar.pdf
をPDFリーダーで開きます。フラット化されていますが、フィールドにあったデータは単に存在しません。PDF is記入されていない場合と同じですが、記入可能なフィールドがあります。
ここに欠けているものはありますか?
私がGoogleで見つけたすべての解決策は、空のフォームに.fdf
ファイルを入力することですが、これは私の状況にはあまり関係ありません。
私はこの解決策をつなぎ合わせることができました。
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がこのようなことをしない理由は私を超えています。