pdftk flatten 丢失可填写字段数据

pdftk flatten 丢失可填写字段数据

我正在尝试找到一种解决方案,在 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 一开始不做这样的事情。

相关内容