This past week I released h2p, a simple python frontend to libwkhtmltox that lets you generate PDF files from web pages without needing to spawn subprocesses.

You can use pip or pipenv to install it:

pipenv install h2p

And the API is straightforward:

import h2p

websites = ["https://google.com", "https://example.com", "https://defn.io"]

tasks = []
for i, website in enumerate(websites, 1):
   filename = f"output-{i}.pdf"
   tasks.append(h2p.generate_pdf(filename, website))
   print(f"Enqueued task for {website!r} -> {filename!r}.")

# ... do other stuff while your pdfs are being generated ...

for task in tasks:
   task.result()

print("All tasks are done.")

Each call to generate_pdf returns an asynchronous task that represents the action of generating that pdf. Calling result on that task will block until it’s done.