Also, make sure that the server can access all resources (image and css), i.e. no firewall blocking it.
What helps to troubleshoot might be to temporarily add to frappe/frappe/utils/pdf.py after line 12
frappe.log_error(html)
In a production system, run bench migrate and bench restart. Then, create a pdf and observe the system error log, it should get the html code when generating the pdf. Write the content to a file (test.html) and copy it to the server, then on the server run
$ wkhtmltopdf test.html test.pdf
And observe error messages… Remove the debug line afterwards, otherwise each pdf creates an error trace…
Hope this helps.