Skip to content

Instantly share code, notes, and snippets.

@allewun
Forked from elfsternberg/remove-watermark.sh
Last active October 1, 2018 09:30
Show Gist options
  • Save allewun/4cb3659a6c3d0736b97f96357816fd27 to your computer and use it in GitHub Desktop.
Save allewun/4cb3659a6c3d0736b97f96357816fd27 to your computer and use it in GitHub Desktop.
Remove a textual watermark from a PDF file.
#!/bin/bash
# Remove a textual watermark from a PDF file. Requires:
# - qpdf (brew install qpdf)
# - pdftx (https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk_server-2.02-mac_osx-10.11-setup.pkg)
# - coreutils (brew install coreutils)
#
# Tested on macOS 10.12 Sierra.
if [[ -z $3 ]]; then
echo "Usage: ./remove-watermark.sh WATERMARK input.pdf output.pdf"
exit
fi
WATERMARK=$1
INBOUND=$2
OUTBOUND=$3
UNCOMPRESSED=`mktemp 'uncompressed-XXXXXXXXXX.pdf'`
FIXED=`mktemp 'fixed-XXXXXXXXXX.pdf'`
UNMARKED=`mktemp 'unmarked-XXXXXXXXXX.pdf'`
WATERMARKLEN=${#WATERMARK}
BLANKS=`printf %${WATERMARKLEN}s`
qpdf --stream-data=uncompress "${INBOUND}" $UNCOMPRESSED
gsed -e 's/'"${WATERMARK}"'/'"${BLANKS}"'/g' < $UNCOMPRESSED > $FIXED
pdftk $FIXED output $UNMARKED
qpdf --stream-data=compress $UNMARKED "${OUTBOUND}"
rm $UNCOMPRESSED $FIXED $UNMARKED
# NO WARRANTY
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment