-
Notifications
You must be signed in to change notification settings - Fork 425
Download AppImage
The most recent releases have AppImages built on a range of recent Ubuntu releases.
An AppImage is a self contained collection of an executable (such as pdf2htmlEX
) and any non-standard libraries that it depends upon.
This means that an AppImage should be able to be run on most modern GNU/Linux distributions. Simply:
- Download the
*.AppImage
file from our releases page. - Make the downloaded image executable using the file browser or the
chmod a+x
in the command line. - Run it...
Our AppImages are known to work on Ubuntu, and recent Windows 10 (with 'Windows Subsystem for Linux').
Unfortunately our AppImages are unlikely to run on the MacOSX platforms (since MacOSX can not work with the FUSE subsystem).
While an AppImage contains its own copies of any non-standard shared libraries, it does depend upon any local configuration found in your /etc
directories.
In particular, our AppImage will use your Fontconfig, and iconv configuration.
On Ubuntu releases (bionic, eoan, and focal), the following packages are needed for a full installation (principally for their associated configuration):
sudo apt -y install libfontconfig1
sudo apt -y install libglib2.0-0
sudo apt -y install libxcb1
sudo apt -y install libx11-6
Whem page images are stored as WebP in base64 format instead of PNG, the resulting PDF size is significantly reduced. If the images are called externally as WebP instead of embedding them as base64, the size is reduced by approximately 30% more. Below, I’m sharing an example BASH code block that converts PNGs to WebP and embeds the base64-encoded WebP images into all pages.
for img in /path/to/your/directory/bg*.png; do
# Extract the image filename without the extension (.png)
img_name=$(basename "$img" .png)
# Convert the .png image to .webp format with quality 75 and save it in the same directory
convert "$img" -quality 75 "/path/to/your/directory/$img_name.webp"
done
folder_path="/path/to/your/directory"
for file in "$folder_path"/*.page; do
if -f "$file"; then
# Extract the src URL of the image in the .page file and replace the .png extension with .webp
x=$(grep -oP 'src="\K[^"]+'
# Encode the .webp image file to base64 and save it to encode.txt
base64 /path/to/your/directory/$x > /path/to/your/directory/encode.txt
# Remove any newlines from the base64-encoded content and save to a temporary file
cat /path/to/your/directory/encode.txt | tr -d '\n' > /path/to/your/directory/temp_base64.txt
# Update the .page file to use the .webp extension instead of .png
sed -i 's/\(src="[^"]*\)\.png"/\1.webp"/g' "$file"
# Replace the image src in the .page file with the base64-encoded data URI for the .webp image
awk -v x="$x" 'NR==FNR{base64=$0; next} {gsub(x, "data:image/webp;base64," base64)}1' /path/to/your/directory/temp_base64.txt $file > /path/to/your/directory/temp.page && mv /path/to/your/directory/temp.page $file
fi done