Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions 15 pdfkit/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@


def from_url(url, output_path=None, options=None, toc=None, cover=None,
configuration=None, cover_first=False, verbose=False):
configuration=None, cover_first=False, verbose=False, timeout=None):
"""
Convert file of files from URLs to PDF document

Expand All @@ -17,18 +17,19 @@ def from_url(url, output_path=None, options=None, toc=None, cover=None,
:param configuration: (optional) instance of pdfkit.configuration.Configuration()
:param cover_first: (optional) if True, cover always precedes TOC
:param verbose: (optional) By default '--quiet' is passed to all calls, set this to False to get wkhtmltopdf output to stdout.
:param timeout: (optional) if passed, uses this timeout value (in seconds) for the wkhtmltopdf command

Returns: True on success
"""

r = PDFKit(url, 'url', options=options, toc=toc, cover=cover,
configuration=configuration, cover_first=cover_first, verbose=verbose)
configuration=configuration, cover_first=cover_first, verbose=verbose, timeout=timeout)

return r.to_pdf(output_path)


def from_file(input, output_path=None, options=None, toc=None, cover=None, css=None,
configuration=None, cover_first=False, verbose=False):
configuration=None, cover_first=False, verbose=False, timeout=None):
"""
Convert HTML file or files to PDF document

Expand All @@ -41,18 +42,19 @@ def from_file(input, output_path=None, options=None, toc=None, cover=None, css=N
:param configuration: (optional) instance of pdfkit.configuration.Configuration()
:param cover_first: (optional) if True, cover always precedes TOC
:param verbose: (optional) By default '--quiet' is passed to all calls, set this to False to get wkhtmltopdf output to stdout.
:param timeout: (optional) if passed, uses this timeout value (in seconds) for the wkhtmltopdf command

Returns: True on success
"""

r = PDFKit(input, 'file', options=options, toc=toc, cover=cover, css=css,
configuration=configuration, cover_first=cover_first, verbose=verbose)
configuration=configuration, cover_first=cover_first, verbose=verbose, timeout=timeout)

return r.to_pdf(output_path)


def from_string(input, output_path=None, options=None, toc=None, cover=None, css=None,
configuration=None, cover_first=False, verbose=False):
configuration=None, cover_first=False, verbose=False, timeout=None):
"""
Convert given string or strings to PDF document

Expand All @@ -65,12 +67,13 @@ def from_string(input, output_path=None, options=None, toc=None, cover=None, css
:param configuration: (optional) instance of pdfkit.configuration.Configuration()
:param cover_first: (optional) if True, cover always precedes TOC
:param verbose: (optional) By default '--quiet' is passed to all calls, set this to False to get wkhtmltopdf output to stdout.
:param timeout: (optional) if passed, uses this timeout value (in seconds) for the wkhtmltopdf command

Returns: True on success
"""

r = PDFKit(input, 'string', options=options, toc=toc, cover=cover, css=css,
configuration=configuration, cover_first=cover_first, verbose=verbose)
configuration=configuration, cover_first=cover_first, verbose=verbose, timeout=timeout)

return r.to_pdf(output_path)

Expand Down
5 changes: 3 additions & 2 deletions 5 pdfkit/pdfkit.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def __str__(self):
return self.msg

def __init__(self, url_or_file, type_, options=None, toc=None, cover=None,
css=None, configuration=None, cover_first=False, verbose=False):
css=None, configuration=None, cover_first=False, verbose=False, timeout=None):

self.source = Source(url_or_file, type_)
self.configuration = (Configuration() if configuration is None
Expand All @@ -57,6 +57,7 @@ def __init__(self, url_or_file, type_, options=None, toc=None, cover=None,
self.verbose = verbose
self.css = css
self.stylesheets = []
self.timeout = timeout

def _genargs(self, opts):
"""
Expand Down Expand Up @@ -187,7 +188,7 @@ def to_pdf(self, path=None):
else:
input = None

stdout, stderr = result.communicate(input=input)
stdout, stderr = result.communicate(input=input, timeout=self.timeout)
stderr = stderr or stdout or b""
stderr = stderr.decode('utf-8', errors='replace')
exit_code = result.returncode
Expand Down
Morty Proxy This is a proxified and sanitized view of the page, visit original site.