Batch generating thumbnails and preview images from a list of PDF filenames using ImageMagick

This procedure automates the creation of thumbnails and preview images for ingest into the DAMS. This procedure was written for Windows 10.

What you need:

Windows Subsystem for Linux, Ubuntu 18.04

Contributor access to the directory where the PDFs are located

What you do:

Launch Ubuntu 18.04.

Update Ubuntu
sudo apt update
sudo apt upgrade
Install ImageMagick. Skip this step if you already have ImageMagick installed.
sudo apt install imagemagick
Example installation progress
user@host:~$ sudo apt install imagemagick
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  fontconfig fontconfig-config fonts-dejavu-core fonts-droid-fallback fonts-noto-mono ghostscript gsfonts
  hicolor-icon-theme imagemagick-6-common libavahi-client3 libavahi-common-data libavahi-common3 libcairo2 libcups2
  libcupsfilters1 libcupsimage2 libdatrie1 libdjvulibre-text libdjvulibre21 libfftw3-double3 libfontconfig1 libgomp1
  libgraphite2-3 libgs9 libgs9-common libharfbuzz0b libijs-0.35 libilmbase12 libjbig0 libjbig2dec0 libjpeg-turbo8
  libjpeg8 liblcms2-2 liblqr-1-0 libltdl7 libmagickcore-6.q16-3 libmagickcore-6.q16-3-extra libmagickwand-6.q16-3
  libnetpbm10 libopenexr22 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpaper-utils libpaper1 libpixman-1-0
  libthai-data libthai0 libtiff5 libwmf0.2-7 libxcb-render0 libxcb-shm0 libxrender1 netpbm poppler-data
Suggested packages:
  fonts-noto ghostscript-x imagemagick-doc autotrace cups-bsd | lpr | lprng enscript ffmpeg gimp gnuplot grads
  graphviz hp2xx html2ps libwmf-bin mplayer povray radiance sane-utils texlive-base-bin transfig ufraw-batch xdg-utils
  cups-common libfftw3-bin libfftw3-dev liblcms2-utils inkscape libjxr-tools libwmf0.2-7-gtk poppler-utils
  fonts-japanese-mincho | fonts-ipafont-mincho fonts-japanese-gothic | fonts-ipafont-gothic fonts-arphic-ukai
  fonts-arphic-uming fonts-nanum
The following NEW packages will be installed:
  fontconfig fontconfig-config fonts-dejavu-core fonts-droid-fallback fonts-noto-mono ghostscript gsfonts
  hicolor-icon-theme imagemagick-6-common imagemagick-6.q16 libavahi-client3 libavahi-common-data libavahi-common3
  libcairo2 libcups2 libcupsfilters1 libcupsimage2 libdatrie1 libdjvulibre-text libdjvulibre21 libfftw3-double3
  libfontconfig1 libgomp1 libgraphite2-3 libgs9 libgs9-common libharfbuzz0b libijs-0.35 libilmbase12 libjbig0
  libjbig2dec0 libjpeg-turbo8 libjpeg8 liblcms2-2 liblqr-1-0 libltdl7 libmagickcore-6.q16-3
  libmagickcore-6.q16-3-extra libmagickwand-6.q16-3 libnetpbm10 libopenexr22 libpango-1.0-0 libpangocairo-1.0-0
  libpangoft2-1.0-0 libpaper-utils libpaper1 libpixman-1-0 libthai-data libthai0 libtiff5 libwmf0.2-7 libxcb-render0
  libxcb-shm0 libxrender1 netpbm poppler-data
0 upgraded, 56 newly installed, 0 to remove and 40 not upgraded.
Need to get 23.6 MB of archives.
After this operation, 84.7 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://archive.ubuntu.com/ubuntu bionic/main amd64 fonts-dejavu-core all 2.37-1 [1041 kB]
Get:2 http://archive.ubuntu.com/ubuntu bionic/main amd64 fontconfig-config all 2.12.6-0ubuntu2 [55.8 kB]
Get:3 http://archive.ubuntu.com/ubuntu bionic/main amd64 libfontconfig1 amd64 2.12.6-0ubuntu2 [137 kB]
Get:4 http://archive.ubuntu.com/ubuntu bionic/main amd64 fontconfig amd64 2.12.6-0ubuntu2 [169 kB]
Get:5 http://archive.ubuntu.com/ubuntu bionic/main amd64 fonts-droid-fallback all 1:6.0.1r16-1.1 [1805 kB]
Get:6 http://archive.ubuntu.com/ubuntu bionic/main amd64 libjpeg-turbo8 amd64 1.5.2-0ubuntu5 [110 kB]
Get:7 http://archive.ubuntu.com/ubuntu bionic/main amd64 libgomp1 amd64 8-20180414-1ubuntu2 [76.8 kB]
Get:8 http://archive.ubuntu.com/ubuntu bionic/main amd64 libfftw3-double3 amd64 3.3.7-1 [735 kB]
Get:9 http://archive.ubuntu.com/ubuntu bionic/main amd64 libjbig0 amd64 2.1-3.1build1 [26.7 kB]
Get:10 http://archive.ubuntu.com/ubuntu bionic/main amd64 libjpeg8 amd64 8c-2ubuntu8 [2194 B]
Get:11 http://archive.ubuntu.com/ubuntu bionic/main amd64 liblcms2-2 amd64 2.9-1 [139 kB]
Get:12 http://archive.ubuntu.com/ubuntu bionic/main amd64 liblqr-1-0 amd64 0.4.2-2.1 [27.7 kB]
Get:13 http://archive.ubuntu.com/ubuntu bionic/main amd64 libltdl7 amd64 2.4.6-2 [38.8 kB]
Get:14 http://archive.ubuntu.com/ubuntu bionic/main amd64 libtiff5 amd64 4.0.9-5 [152 kB]
Get:15 http://archive.ubuntu.com/ubuntu bionic/main amd64 imagemagick-6-common all 8:6.9.7.4+dfsg-16ubuntu6 [61.0 kB]
Get:16 http://archive.ubuntu.com/ubuntu bionic/main amd64 libmagickcore-6.q16-3 amd64 8:6.9.7.4+dfsg-16ubuntu6 [1612 kB]
Get:17 http://archive.ubuntu.com/ubuntu bionic/main amd64 libmagickwand-6.q16-3 amd64 8:6.9.7.4+dfsg-16ubuntu6 [293 kB]
Get:18 http://archive.ubuntu.com/ubuntu bionic/main amd64 poppler-data all 0.4.8-2 [1479 kB]
Get:19 http://archive.ubuntu.com/ubuntu bionic/main amd64 fonts-noto-mono all 20171026-2 [75.5 kB]
Get:20 http://archive.ubuntu.com/ubuntu bionic/main amd64 libavahi-common-data amd64 0.7-3.1ubuntu1 [22.3 kB]
Get:21 http://archive.ubuntu.com/ubuntu bionic/main amd64 libavahi-common3 amd64 0.7-3.1ubuntu1 [21.6 kB]
Get:22 http://archive.ubuntu.com/ubuntu bionic/main amd64 libavahi-client3 amd64 0.7-3.1ubuntu1 [25.3 kB]
Get:23 http://archive.ubuntu.com/ubuntu bionic/main amd64 libcups2 amd64 2.2.7-1ubuntu2 [211 kB]
Get:24 http://archive.ubuntu.com/ubuntu bionic/main amd64 libcupsimage2 amd64 2.2.7-1ubuntu2 [18.5 kB]
Get:25 http://archive.ubuntu.com/ubuntu bionic/main amd64 libijs-0.35 amd64 0.35-13 [15.5 kB]
Get:26 http://archive.ubuntu.com/ubuntu bionic/main amd64 libjbig2dec0 amd64 0.13-6 [55.9 kB]
Get:27 http://archive.ubuntu.com/ubuntu bionic/main amd64 libpaper1 amd64 1.1.24+nmu5ubuntu1 [13.6 kB]
Get:28 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libgs9-common all 9.22~dfsg+1-0ubuntu1.1 [5198 kB]
Get:29 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libgs9 amd64 9.22~dfsg+1-0ubuntu1.1 [2213 kB]
Get:30 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 ghostscript amd64 9.22~dfsg+1-0ubuntu1.1 [47.6 kB]
Get:31 http://archive.ubuntu.com/ubuntu bionic/main amd64 gsfonts all 1:8.11+urwcyr1.0.7~pre44-4.4 [3120 kB]
Get:32 http://archive.ubuntu.com/ubuntu bionic/main amd64 hicolor-icon-theme all 0.17-2 [9976 B]
update-alternatives: using /usr/bin/convert-im6.q16 to provide /usr/bin/convert (convert) in auto mode
update-alternatives: using /usr/bin/convert-im6.q16 to provide /usr/bin/convert-im6 (convert-im6) in auto mode
update-alternatives: using /usr/bin/composite-im6.q16 to provide /usr/bin/composite (composite) in auto mode
update-alternatives: using /usr/bin/composite-im6.q16 to provide /usr/bin/composite-im6 (composite-im6) in auto mode
update-alternatives: using /usr/bin/conjure-im6.q16 to provide /usr/bin/conjure (conjure) in auto mode
update-alternatives: using /usr/bin/conjure-im6.q16 to provide /usr/bin/conjure-im6 (conjure-im6) in auto mode
update-alternatives: using /usr/bin/import-im6.q16 to provide /usr/bin/import (import) in auto mode
update-alternatives: using /usr/bin/import-im6.q16 to provide /usr/bin/import-im6 (import-im6) in auto mode
update-alternatives: using /usr/bin/identify-im6.q16 to provide /usr/bin/identify (identify) in auto mode
update-alternatives: using /usr/bin/identify-im6.q16 to provide /usr/bin/identify-im6 (identify-im6) in auto mode
update-alternatives: using /usr/bin/stream-im6.q16 to provide /usr/bin/stream (stream) in auto mode
update-alternatives: using /usr/bin/stream-im6.q16 to provide /usr/bin/stream-im6 (stream-im6) in auto mode
update-alternatives: using /usr/bin/display-im6.q16 to provide /usr/bin/display (display) in auto mode
update-alternatives: using /usr/bin/display-im6.q16 to provide /usr/bin/display-im6 (display-im6) in auto mode
update-alternatives: using /usr/bin/montage-im6.q16 to provide /usr/bin/montage (montage) in auto mode
update-alternatives: using /usr/bin/montage-im6.q16 to provide /usr/bin/montage-im6 (montage-im6) in auto mode
update-alternatives: using /usr/bin/mogrify-im6.q16 to provide /usr/bin/mogrify (mogrify) in auto mode
update-alternatives: using /usr/bin/mogrify-im6.q16 to provide /usr/bin/mogrify-im6 (mogrify-im6) in auto mode
Setting up libcupsfilters1:amd64 (1.20.2-0ubuntu3) ...
Setting up libcupsimage2:amd64 (2.2.7-1ubuntu2) ...
Setting up libpango-1.0-0:amd64 (1.40.14-1) ...
Setting up libgs9:amd64 (9.22~dfsg+1-0ubuntu1.1) ...
Setting up ghostscript (9.22~dfsg+1-0ubuntu1.1) ...
Setting up libpangoft2-1.0-0:amd64 (1.40.14-1) ...
Setting up libpangocairo-1.0-0:amd64 (1.40.14-1) ...
Setting up libmagickcore-6.q16-3-extra:amd64 (8:6.9.7.4+dfsg-16ubuntu6) ...
Processing triggers for libc-bin (2.27-3ubuntu1) ...
user@host:~$
Configure your fstab to auto mount your network volume. Skip this step if you already have your fstab configured
sudo vi /etc/fstab
//hostname/volname /mnt/volname drvfs rw,relatime 0 0
Find all the PDF files and output them to a list. In this example, all our PDFs are in a fixed sub2dirname, but variable subdirname. So subdirname is a pattern.
find /mnt/volname/dirname -type f | grep subdirname | grep sub2dirname > templist.txt
Run ImageMagick Convert to create a thumbnail for each PDF in the list and output to the same directory with an '_tn.jpg' appended to each filename
for i in `cat templist.txt` ; do convert "$i"[0] -quality '75' -resize '200x200' -colorspace RGB -flatten "$i"_tn.jpg ; done
Run ImageMagick Convert to create a preview image for each PDF in the list and output to the same directory with an '_preview.jpg' appended to each filename
for i in `cat templist.txt` ; do convert "$i"[0] -quality '75' -resize '500x700' -colorspace RGB -flatten "$i"_preview.jpg ; done