FAQ

Изображение или фон не растягивается на всю ширину или баннер имеет отступы сверху/снизу

Скорее всего вам надо сбросить отступы для body и html тегов

<html style="background: blue">
    <head>
        <style type="text/css">
            html, body {
                padding: 0;
                margin: 0;
            }
        </style>
    </head>
    <body>
        <div style="background: red; width: 100%; height: 100px;"></div>
    </body>
</html>

Генерация PDF для печати. Например счет или справка

import base64
import json

import requests

resp = requests.post('http://apis.garpun.com/sitepreview/v1/render', json.dumps({
    "dataProvider": {
        "type": "template",
        "source": """
        <!DOCTYPE html>
        <html>
        
        <head>
            <meta charset="utf-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <link href="https://fonts.googleapis.com/css?family=Roboto:400,500,700,900&amp;subset=cyrillic,cyrillic-ext" rel="stylesheet">
            <style>
                body, html {
                    padding: 0;
                    margin: 0;
                    width: 595px;
                    height: 842px;
                    font-size: 13px;
                    font-family: 'Roboto', sans-serif;
                }
            </style>
        </head>
        
        <body>
        <div class="wrapper">
            <h1>Hello, {{name}}</h1>
        </div>
        </body>
        
        </html>
        """,
        "context": {
            "name": "Misha"
        }
    },
    "timeout": 1000,
    "format": "pdf",
    "zoomFactor": 1,
    "paperSize": {
        "format": "A4",
        "orientation": "partrait",
        "border": "0px",
        "margin": "0px"
    },
}), headers={"Content-Type": "application/json"})
api_resp = resp.json()

load_success = api_resp['base64Content']
bytes_ = base64.b64decode(load_success)

f = open("out.pdf", "wb")
f.write(bytes_)
f.close()