我正在尝试找到一种解决方案,在 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 文件,然后在第二次运行中使用此文件将其展平。我不明白为什么 pdftk 一开始不做这样的事情。