Я использую Ubuntu 11.10 и ищу решение для защиты паролем группы PDF-файлов в каталоге в пакетном режиме. Я наткнулся на PDFtk, и похоже, что он может делать то, что мне нужно, но я рассмотрел примеры командной строки PDFtk и не могу понять, есть ли способ сделать это в пакетном режиме, без необходимости индивидуально указывать имя выходного файла для каждого файла. Я надеюсь, что гуру командной строки может взглянуть на синтаксис PDFtk и сказать, есть ли какая-нибудь хитрость / команда, которая позволит мне защитить паролем каталог файлов PDF (например, * .pdf) и перезаписать существующий файлы, использующие одно и то же имя, или последовательно переименовывайте отдельные выходные файлы без необходимости указывать каждое выходное имя по отдельности.
Вот ссылка на страницу примеров командной строки PDFtk: http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/
Спасибо за вашу помощь .
Я думаю, что ответил на свой вопрос. Вот скрипт bash, который, кажется, делает свое дело. Я хотел бы помочь оценить, почему закомментированный код не работает ...
#!/bin/bash
# Created by Dave, 2012-02-23
# This script uses PDFtk to password protect every PDF file
# in the directory specified. The script creates a directory named "protected_[DATE]"
# to hold the password protected version of the files.
#
# I'm using the "user_pw" parameter,
# which means no one will be able to open or view the file without
# the password.
#
# PDFtk must be installed for this script to work.
#
# Usage: ./protect_with_pdftk.bsh [FILE(S)]
# [FILE(S)] can use wildcard expansion (e.g., *.pdf)
# This part isn't working.... ignore. The goal is to avoid errors if the
# directory to be created already exists by only attempting to create
# it if it doesn't exists
#
#TARGET_DIR="protected_$(date +%F)"
#if [ -d "$TARGET_DIR" ]
#then
#echo # echo "$TARGET_DIR directory exists!"
#else
#echo # echo "$TARGET_DIR directory does not exist!"
#fi
#
mkdir protected_$(date +%F)
for i in *pdf ; do pdftk "$i" output "./protected_$(date +%F)/$i" user_pw [PASSWORD]; done
echo "Complete. Output is in the directory: ./protected_$(date +%F)"
Один из авторов попросил меня опубликовать свой ответ в качестве фактического ответа для потомков. Вот ответ. Спасибо всем за вашу помощь.
Я ответил на свой вопрос. Вот скрипт bash, который, кажется, делает свое дело. Я хотел бы помочь оценить, почему закомментированный код не работает ...
#!/bin/bash
# Created by Dave, 2012-02-23
# This script uses PDFtk to password protect every PDF file
# in the directory specified. The script creates a directory named "protected_[DATE]"
# to hold the password protected version of the files.
#
# I'm using the "user_pw" parameter,
# which means no one will be able to open or view the file without
# the password.
#
# PDFtk must be installed for this script to work.
#
# Usage: ./protect_with_pdftk.bsh [FILE(S)]
# [FILE(S)] can use wildcard expansion (e.g., *.pdf)
# This part isn't working.... ignore. The goal is to avoid errors if the
# directory to be created already exists by only attempting to create
# it if it doesn't exists
#
#TARGET_DIR="protected_$(date +%F)"
#if [ -d "$TARGET_DIR" ]
#then
#echo # echo "$TARGET_DIR directory exists!"
#else
#echo # echo "$TARGET_DIR directory does not exist!"
#fi
#
mkdir protected_$(date +%F)
for i in *pdf ; do pdftk "$i" output "./protected_$(date +%F)/$i" user_pw [PASSWORD]; done
echo "Complete. Output is in the directory: ./protected_$(date +%F)"
Я протестировал ту часть, которую вы закомментировали (и немного изменил, чтобы продемонстрировать, что она работает):
#!/bin/bash
TARGET_DIR="protected_$(date +%F)"
if [ -d "$TARGET_DIR" ]
then
echo "$TARGET_DIR directory exists!"
else
echo "$TARGET_DIR directory does not exist!"
mkdir "$TARGET_DIR"
fi
Это вывод после первого запуска:
[ 111]Это вывод после второго запуска:
protected_2012-02-23 directory exists!
Таким образом, он успешно создает $TARGET_DIR
в ветви else
. С какой ошибкой вы столкнулись, комментируя этот раздел?
Существует графический инструмент под названием pdfsam . Вы можете установить его по умолчанию в репозитории Ubuntu следующим образом:
sudo apt-get install pdfsam
или выполнить поиск по его имени в Ubuntu Software Center.
Он сделан на Java, и его пользовательский интерфейс кажется старым и немного хитрым, но может отлично справиться с работой.