convert 4460 -> 4460b convert 3040b -> 3040 convert 4032a -> 4032 The following additions were made to the *.pov file: #version 3.6; #include "rad_def.inc" global_settings { max_trace_level 10 radiosity { Rad_Settings(Radiosity_Final, on, off) } } light_source { // X, Y, Z <-1000, -1500, -1000> color rgb 1.0 area_light 200, 200, 10, 10 jitter } #declare LDXSkipLight1 = 1; #declare LDXSkipLight2 = 1; #declare LDXSkipLight3 = 1; and in the end: // Fog fog { distance LDXRadius*25 color rgb 1 } The rendering was done as 2480x3506 (portrait A4 at 118 dots per cm). Convert the image into the cover pdf using: convert tree.bmp -compress jpeg -quality 95 -units PixelsPerCentimeter -density 118x118 cover.pdf Convert the image into a foggy grayscale background image using: convert -modulate 100,0,100 tree.bmp -size 2480x3506 xc:white -compose dissolve -define compose:args=85,100 -composite tree-foggy.png The pdf generated by LPub was postprocessed using: pdfcrop --bbox "0 166 596 1008" tree.pdf tree-cropped.pdf To make it A4 sized. Then run pdfsizeopt over the result to compress the PDF further. ./pdfsizeopt tree-cropped.pdf tree-pso.pdf That was then processed by pdfopt. Because pdftk can't handle the pdfsizeopt output. pdfopt tree-pso.pdf tree-opt.pdf And then connected with the cover page: pdftk cover.pdf tree-opt.pdf output tree-final.pdf