15

Я использую Mac OS X Snow Leopard. У меня есть PDF с полями формы, аннотациями и штампами. Я хотел бы заморозить (или "сгладить") этот PDF-файл, чтобы поля формы не могли быть изменены и аннотации / штампы больше не редактировались. Поскольку у меня действительно много таких PDF-файлов, я хочу сделать это автоматически в командной строке.

Некоторые вещи, которые я пробовал / рассматривал, с их степенью успеха:

  • Откройте в режиме предварительного просмотра и распечатать в файл. Это создает абсолютно плоский PDF без изменения размера файла. Похоже, что единственным способом автоматизации является написание хитрого AppleScript на основе пользовательского интерфейса, которого я старался избегать.
  • Откройте в Acrobat Pro и используйте функцию JavaScript для выравнивания. Опять же, не уверен, как автоматизировать это в командной строке.
  • Используйте pdftk с flatten опцией. Но это только выравнивает поля формы, а не штампы и другие аннотации.
  • Используйте cupsfilter который может создавать PDF из многих форматов файлов. Как и pdftk это сгладило только поля формы.
  • Используйте cups-pdf чтобы подключиться к принт-серверу Mac и сохранить файл PDF вместо печати. Я использовал версию Macports. Полученный файл плоский, но огромный. Я попробовал это на 8 МБ файле; формат PDF был 358 МБ! Возможно, это можно сочетать с вызовом ghostscript, как в Ubuntu. Совет: как уменьшить размер файла PDF из командной строки.

Любые другие предложения будут оценены.

4 ответа4

11

Попробуйте последовательно использовать pdf2ps и ps2pdf . Это немного громоздко, но это помогло мне уменьшить мой 30 МБ документ до 17 МБ. Не так много, как хотелось бы, но все же лучше. Я получил эту идею от друга, который использовал этот метод, чтобы избавиться от прав доступа к паролю в PDF.

pdf2ps your_pdf_file.pdf your_pdf_file.ps
ps2pdf your_pdf_file.ps your_pdf_file_from_ps.pdf

Надеюсь, это поможет!

5

Так что это то, что я использовал в последнее время. Я думаю, что функционально он делает то же самое, что и pdf2ps file.pdf - | ps2pdf - file_flat.pdf , но мне показалось, что это работает лучше.

gs -sDEVICE=pdfwrite -dPDFSETTINGS=/default -dNOPAUSE -dQUIET -dBATCH -sOutputFile=<newfile> <oldfile>
1

Это может быть необязательным, но вы рассматривали цепочку cups-pdf с pdftk или cupsfilter? Как вы упомянули, cups-pdf создаст плоский файл pdf и затем пропустит его через pdftk или cupsfilter, чтобы уменьшить его до приемлемого размера?

В качестве альтернативы взгляните на /System/Library/Printers/Libraries/convert Вы должны быть в состоянии сделать что-то вроде

/System/Library/Printers/Libraries/convert -f input_file.pdf -o output_file.pdf -j "application/pdf"
0

Applescript - это, пожалуй, лучший / самый быстрый путь к командной строке. Как только он заработает, вы можете сохранить его как приложение и создать псевдоним в командной оболочке для его запуска. После этого вы просто вводите свой псевдоним в командной строке.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .