As i have seen, since wkhtmltopdf 0.12.4 dpi was somehow hardcoded zo 96. So for me the solution was to set settings to: dpi 75 and zoom 1.28 (i.e. 96/75), which produces almost identical output.
As seen on https://github.com/wkhtmltopdf/wkhtmltopdf/issues/3241
i did this by changing ./apps/frappe/frappe/utils/pdf.py from line 61 to the following:
def prepare_options(html, options):
if not options:
options = {}
options.update({
'print-media-type': None,
'background': None,
'images': None,
'quiet': None,
# 'no-outline': None,
'encoding': "UTF-8",
#'load-error-handling': 'ignore',
# defaults
'margin-right': '15mm',
'margin-left': '15mm',
#options for wkhtmltopdf 0.12.5
'zoom': 1.28,
'dpi': 75
})