Я пытаюсь найти решение для выравнивания PDF-файлов с уже заполненными полями в командной строке Linux. Сначала я возился с GhostScript, но обнаружил, что он имеет тенденцию преобразовывать все данные полей в мусорные символы.
Когда я запускаю эту команду
pdftk foo.pdf output bar.pdf flatten
и открыть bar.pdf
в 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 для генерации файла fdf из заполненного pdf, а затем использует этот файл во втором запуске для его выравнивания. Почему pdftk не делает что-то подобное изначально, мне непонятно.