1. Download the PDFHummus/PDFWriter source code: https://github.com/galkahana/PDF-Writer This library only has build instructions for MSVC toolchains within Visual Studio 2017/2019. create folders PDFWriter\dependencies\lib\ and PDFWriter\dependencies\include 2. Use VCPKG to install the following libraries necessary for PDFHummus: libtiff, libjpeg, libpng, and zlib 3. Download freetype from: git://git.savannah.gnu.org/freetype/freetype2.git From the freetype2 source code root directory use Msys and run the following commands: mingw32-make setup mingw32 mingw32-make cp -r include\* ..\PDFHummus\PDFWriter\dependencies\include\ cp objs\libfreetype.a ..\PDFHummus\PDFWriter\dependencies\lib\ 4. The PDFHummus/PDFWriter source code includes a copy of the source code for LibAesgm in a folder with the same name. Go into this folder and run the following commands to generate the library: // fpermissive is needed because the author chose to implicitly switch between pointers of uint_8 and char. g++ -c -fpermissive *.o ar -cvq aesgm.lib *.o g++ -I "C:\Users\bad-p\Downloads\PDFHummus-build\PDFHummus\LibAesgm" 5. Download libtiff from: https://gitlab.com/libtiff/libtiff After compiling the libtiff library with the Cmake file, all object files are located in C:\Users\bad-p\Downloads\TRASH\libtiff-master\build\libtiff\CMakeFiles\tiff.dir Download libpng from: https://sourceforge.net/projects/libpng/files/libpng16/1.6.37/libpng-1.6.37.tar.xz/download?use_mirror=newcontinuum After compiling the libpng library with the Cmake file, all object files are located in C:\Users\bad-p\Downloads\TRASH\libpng-1.6.37\build\CMakeFiles\png_static.dir Download libjpeg from:https://sourceforge.net/projects/libjpeg/files/ After compiling the libjpeg library with the Cmake file, all object files are located in C:\Users\bad-p\Downloads\TRASH\jpeg-6b Download zlib from: https://www.zlib.net/ After compiling the zlib library with the Cmake file, all object files are located in C:\Users\bad-p\Downloads\TRASH\zlib-1.2.11 For all CMake instructions create a build directory in the source root. CD in to build, run Cmake .. for windows using msys pass the 'Cmake .. -G "MSYS Makefiles"' build option to generate a makefile appropiate for msys; You can use make afterwards to compile as normal. After all of the object files are moved into the same folder, generate a library for PDFWriter. ar -cvq PDFWriter.lib *.o 14 April 2020 Talked about cleaning up the README as well as rebuilding PDFHummus as a statically linked library "on my own". We will try and do this in a couple more sessions, so Wesley can rest his small brain. :D 19 May 2020 Per Raymond Chen - "UAC Virtualization kicks in for applications which were designed for versions of Windows prior to Windows Vista. These applications often assume that they are running with administrative privileges, and when they try to write to file or registry locations that are normally restricted to administrators, they expect them to succeed. So UAC Virtualization lets those writes succeed by secretly redirecting them to another location inside the user profile. The reverse happens when the application later tries to read the file or registry key: If the file or key exists in the redirected location, it is used instead of the one in the administrative location." - Msft CTO