Todos los días redacto muchos archivos PDF, así que paso mucho tiempo pensando en cómo hacerlo de la mejor manera.
Para mí, la mejor manera es dividir el PDF en un archivo PDF de 1 página, luego editar con GIMP, luego combinarlo. No uso imagemagick en todos los archivos (no lo uso en absoluto), por lo que no pierdo la capa de texto en todas las páginas, sino solo en redactado. No cargue todo el archivo PDF a la vez, ya que causa el agotamiento de la memoria.
Dividir PDF en archivos de 1 página
Divida fácilmente los archivos PDF en PDF de 1 página con esta función bash (póngalo en ~ / .bashrc):
function pdf_split(){
for file in "$@"; do
if [ "${file##*.}" != "pdf" ]; then
echo "Skip $file because it's not PDF file";
continue
fi;
pages=$(pdfinfo "$file" | grep "Pages" | awk '{print $2}')
echo "Detect $pages in $file";
filename="${file%.*}";
unset Outfile;
for i in $(seq 1 "$pages"); do
pdftk "$file" cat "$i" output "$filename-$i.pdf";
Outfile[$i]="$filename-$i.pdf";
done;
done;
};
Ahora puede ingresar split_pdf file.pdf
para obtener muchos archivos PDF.
Redactar archivos
Pero, ahora necesita editar todos estos archivos. Puedes hacerlo con gimp original-filename-*.pdf
. Sugiero configurar el acceso directo en GIMP (Ventana principal-> Editar-> Acceso directo) para reemplazar el archivo (uso CTRL + R), desenfocar el filtro (por ejemplo, CTRL + D), cerrar el archivo (por ejemplo, CTRL + W) y salir de GIMP ( por ejemplo, CTRL + Q). Recuerde no cargar en GIMP a muchos archivos a la vez, pero GIMP como carga después de abrir, para que pueda usargimp original-filename-*.pdf
en miles de archivos de forma segura.
Combinar archivos
Puede combinar archivos fácilmente con: pdftk originam-filename-*.pdf cat output "new-file-anon.pdf";
Conéctalo todo junto
Estas operaciones son muy repetitivas y aburridas, por lo que lo conecto todo en 1 script:
function pdf_redact(){
for file in "$@"; do
if [ "${file##*.}" != "pdf" ]; then
echo "Skip $file because it's not PDF file";
continue
fi;
pages=$(pdfinfo "$file" | grep "Pages" | awk '{print $2}')
echo "Detect $pages in $file";
filename="${file%.*}";
unset Outfile;
for i in $(seq 1 "$pages"); do
pdftk "$file" cat "$i" output "$filename-$i.pdf";
Outfile[$i]="$filename-$i.pdf";
done;
gimp "${Outfile[@]}";
pdftk "${Outfile[@]}" cat output "$filename-anon.pdf";
rm "${Outfile[@]}";
read -p "Do you want open output file? " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]
then
evince "$filename-anon.pdf";
fi
read -p "Do you want upload output file to Scribd.com? " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]
then
scribd_up "$filename-anon.pdf";
fi
done;
};
La versión más reciente de este script siempre está disponible en: http://dostep.jawne.info.pl/it/bashrc
Recuerde cerrar GIMP (CTRL + Q) después de toda redacción para continuar el script.
Además, debo abrir archivos redactados (me gusta leer para verificar si todos) y cargarlos en Scribd con mi otro script: scribd_up , por lo que ahora puedo redactar muchos archivos PDF de manera muy eficiente.