WeasyPrint HTML преобразование изображений в изображения: как адаптировать размер изображения к содержимому? - PullRequest
0 голосов
/ 11 апреля 2020

Мне нужно преобразовать HTML в изображение в Python, и я использую WeasyPrint . Я хотел бы, чтобы размер изображения адаптировался к содержимому.

При использовании следующего я получаю изображение, значительно превышающее содержимое:

# !pip install weasyprint
import weasyprint as wsp


img_filepath = 'test.png'
html_source = '''
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Ciao!</title>
    </head>
    <body>
        Hello World!
    </body>
</html>
'''
html = wsp.HTML(string=html_source)
html.write_png(img_filepath)

test.png


Я пытался использовать директиву CSS * @page size для успешного изменения размера изображения:

# !pip install weasyprint
import weasyprint as wsp


img_filepath = 'test2.png'
css = wsp.CSS(string='@page { size: 400px; }')
html_source = '''
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Ciao!</title>
    </head>
    <body>
        Hello World!
    </body>
</html>
'''
html = wsp.HTML(string=html_source)
html.write_png(img_filepath, stylesheets=[css])

test2. png

, но хотелось бы, чтобы размер изображения автоматически адаптировался к его содержимому.

Установка @page size на auto, похоже, прибегает к поведению по умолчанию, заданному ранее.

Есть подсказка?

...