overpdf
This commit is contained in:
parent
ec6312f506
commit
a9ea85eaa6
3 changed files with 79 additions and 1 deletions
62
config/scripts/overpdf
Executable file
62
config/scripts/overpdf
Executable file
|
@ -0,0 +1,62 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Utility to write over a PDF file pages
|
||||
|
||||
# TODO Inkscape vodoo: Put the original in its own layer and skip when merging
|
||||
|
||||
orig_path="$1"
|
||||
|
||||
orig_dir="$(dirname "$orig_path")"
|
||||
orig_file="$(basename "$orig_path")"
|
||||
orig_ext="${orig_file##*.}"
|
||||
orig_name="${orig_file%.*}"
|
||||
|
||||
wdir_file="${orig_name}_src.${orig_ext}"
|
||||
wdir_path="${orig_dir}/${wdir_file}"
|
||||
|
||||
if [ -d "$wdir_path" ]
|
||||
then
|
||||
echo "Source directory $wdir_path found"
|
||||
ls "${wdir_path}/${orig_name}_"*"_og.pdf" | while read page_orig_path
|
||||
do
|
||||
page_stmp_svg="$(echo "$page_orig_path" | sed 's|_og\.pdf$|_fg\.svg|')"
|
||||
page_stmp_pdf="$(echo "$page_orig_path" | sed 's|_og\.pdf$|_fg\.pdf|')"
|
||||
page_fin_pdf="$(echo "$page_orig_path" | sed 's|_og\.pdf$|_fin\.pdf|')"
|
||||
if [ -f "$page_stmp_svg" ]
|
||||
then
|
||||
echo "Processing $page_orig_path (applying stamp)"
|
||||
inkscape "$page_stmp_svg" --export-pdf "$page_stmp_pdf"
|
||||
pdftk "$page_orig_path" stamp "$page_stmp_pdf" output "$page_fin_pdf"
|
||||
else
|
||||
echo "Processing $page_orig_path (copying)"
|
||||
cp "$page_orig_path" "$page_fin_pdf"
|
||||
fi
|
||||
done
|
||||
echo "Merging everything back to ${orig_path}."
|
||||
pdftk "${wdir_path}/${orig_name}_"*"_fin.pdf" output "$orig_path"
|
||||
echo "Deleting temporary files."
|
||||
rm "${wdir_path}/${orig_name}_"*"_fin.pdf" "${wdir_path}/${orig_name}_"*"_fg.pdf"
|
||||
echo "Done."
|
||||
elif [ -f "$orig_path" ]
|
||||
then
|
||||
if [ "$(file --mime-type --brief $orig_path)" != "application/pdf" ]
|
||||
then
|
||||
echo "${orig_path}: not a PDF file"
|
||||
exit 1
|
||||
fi
|
||||
echo "Creating source directory $wdir_path with original pages and template SVGs"
|
||||
mkdir "$wdir_path"
|
||||
pdftk "$orig_file" burst output "${wdir_path}/${orig_name}_%03d_og.pdf"
|
||||
ls "${wdir_path}/${orig_name}_"*"_og.pdf" | while read page_orig_path
|
||||
do
|
||||
page_stmp_svg="$(echo "$page_orig_path" | sed 's|_og\.pdf$|_fg\.svg|')"
|
||||
echo "Processing $page_orig_path"
|
||||
inkscape "$page_orig_path" --export-plain-svg "$page_stmp_svg"
|
||||
done
|
||||
echo "Done. Make sure to edit in a a new layer in Inkscape and hide the original one."
|
||||
else
|
||||
echo "${orig_path}: no such file or directory"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue