aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Law <simon.law@ecometrica.com>2012-07-25 13:16:51 -0400
committerSimon Law <simon.law@ecometrica.com>2012-07-25 13:16:51 -0400
commit68215e393d65eb8999fd3c26566cd7a331fe4300 (patch)
treee13ca06f327c0581bffbba4cf3e9ba735c364556
parent5a1847309e7fa431c98565805d88a21a40d01406 (diff)
downloaddjango-wkhtmltopdf-68215e393d65eb8999fd3c26566cd7a331fe4300.tar.gz
django-wkhtmltopdf-68215e393d65eb8999fd3c26566cd7a331fe4300.tar.bz2
django-wkhtmltopdf-68215e393d65eb8999fd3c26566cd7a331fe4300.zip
settings.WKHTMLTOPDF_ENV can override environment variables.
This is most usefully set to {'DISPLAY': ':1'} in production. This allows wkhtmltopdf access to a specific X headless server, since the server will not be running under X.
-rw-r--r--wkhtmltopdf/utils.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/wkhtmltopdf/utils.py b/wkhtmltopdf/utils.py
index 69da74f..3172c42 100644
--- a/wkhtmltopdf/utils.py
+++ b/wkhtmltopdf/utils.py
@@ -3,6 +3,7 @@ from __future__ import absolute_import
from copy import copy
from itertools import chain
from os import fdopen
+import os
import sys
from tempfile import mkstemp
import urllib
@@ -74,12 +75,16 @@ def wkhtmltopdf(pages, output=None, **kwargs):
options = copy(options)
options.update(kwargs)
+ env = getattr(settings, 'WKHTMLTOPDF_ENV', None)
+ if env is not None:
+ env = dict(os.environ, **env)
+
cmd = getattr(settings, 'WKHTMLTOPDF_CMD', 'wkhtmltopdf')
args = list(chain([cmd],
_options_to_args(**options),
list(pages),
[output]))
- return check_output(args, stderr=sys.stderr)
+ return check_output(args, stderr=sys.stderr, env=env)
def template_to_temp_file(template_name, dictionary=None, context_instance=None):