Я использую Mac OS X Snow Leopard. У меня есть PDF с полями формы, аннотациями и штампами. Я хотел бы заморозить (или «сгладить») этот PDF-файл, чтобы поля формы не могли быть изменены и аннотации / штампы больше не редактировались. Поскольку у меня действительно много таких PDF-файлов, я хочу сделать это автоматически в командной строке.
Некоторые вещи, которые я пробовал / рассматривал, с их степенью успеха:
- Откройте в режиме предварительного просмотра и распечатать в файл. Это создает абсолютно плоский PDF без изменения размера файла. Похоже, что единственным способом автоматизации является написание хитрого AppleScript на основе пользовательского интерфейса , которого я старался избегать.
- Откройте в Acrobat Pro и используйте функцию JavaScript для выравнивания . Опять же, не уверен, как автоматизировать это в командной строке.
- Используйте
pdftk
сflatten
опцией. Но это только выравнивает поля формы, а не штампы и другие аннотации. - Используйте
cupsfilter
который может создавать PDF из многих форматов файлов. Такpdftk
сглаживаются только поля формы. - Используйте,
cups-pdf
чтобы подключиться к принтеру Mac и сохранить файл PDF вместо печати. Я использовал версию MacPort . Полученный файл плоский, но огромный. Я попробовал это на 8 МБ файле; формат PDF был 358 МБ! Возможно, это можно сочетать с вызовом ghostscript, как в Ubuntu. Совет: как уменьшить размер файла PDF из командной строки .
Любые другие предложения будут оценены.
Ответы:
Попробуйте использовать
pdf2ps
иps2pdf
последовательно. Это немного громоздко, но это помогло мне уменьшить мой 30 МБ документ до 17 МБ. Не так много, как хотелось бы, но все же лучше. Я получил эту идею от друга, который использовал этот метод, чтобы избавиться от прав доступа к паролю в PDF.Надеюсь, это поможет!
источник
pdf2ps file.pdf - | ps2pdf - file_flat.pdf
. Размер файла увеличился с 300К до 500К, что является большим процентным приростом, но ничего подобного 4400% -ному увеличению, полученномуcups-pdf
методом.pdf2ps -q -sOutputFile=- file.pdf | ps2pdf - file_flat.pdf
.brew install ghostscript
.Так что это то, что я использовал в последнее время. Я думаю, что функционально это делает то же самое
pdf2ps file.pdf - | ps2pdf - file_flat.pdf
, но мне показалось, что это работает лучше.источник
Это может быть необязательным, но рассматривали ли вы цепочку cups-pdf с pdftk или cupsfilter? Как вы упомянули, cups-pdf создаст плоский файл pdf и затем пропустит его через pdftk или cupsfilter, чтобы уменьшить его до приемлемого размера?
В качестве альтернативы взглянуть на
/System/Library/Printers/Libraries/convert
Вы должны быть в состоянии сделать что-то вродеисточник
/System/Library/Printers/Libraries/convert
. Я попробовалcupsfilter
. При конвертации из PDF в PDF в файл не было внесено никаких изменений. При преобразовании из PDF в PS, а затем в PDF аннотации были потеряны.ВНИМАНИЕ: gs и pdf2ps | ps2pdf НЕ Сглаживайте PDF-файлы!
Использование gs или pdf2ps с последующим ps2pdf приведет к получению многослойного PDF с содержимым под аннотациями, представленными в оригинальном виде . Вы можете проверить этот недостаток в Preview, используя Select All, затем Copy, затем Paste в окно TextEdit (в режиме форматированного текста). Вы увидите текст или графику под примечаниями к редактированию, например. Это явно очень плохо, если вам по закону нужно, чтобы этот контент был удален из вывода.
Рабочее решение
ImageMagick может создавать настраиваемые многостраничные однослойные сглаженные PDF-файлы с растрами на каждой странице с помощью следующей команды:
Эта команда растеризует document_original.pdf, создавая пиксельное изображение каждой страницы с разрешением 150 DPI и выводит результат в виде document_flat.pdf.
Примечание о качестве изображения
Из-за растеризации он создает немасштабируемый (масштабируемый, и вы увидите, что текст или оригинальные векторные изображения становятся пикселизированными) PDF. Вероятно, он будет иметь больший размер файла, если оригинал не имеет очень сложного векторного содержимого, такого как диаграммы рассеяния на миллион точек.
Изменяя плотность , вы можете обменять больший размер файла на более высокое разрешение.
Весь текст будет преобразован в необработанные пиксели на каждом изображении страницы. Текстовые и векторные диаграммы страдают больше всего, поэтому экспериментируйте с DPI, пока не получите полезные выходные файлы.
источник
Applescript - это, пожалуй, лучший / самый быстрый путь к командной строке. Как только он заработает, вы можете сохранить его как приложение и создать псевдоним в командной оболочке для его запуска. После этого вы просто вводите свой псевдоним в командной строке.
источник