Мне нужно преобразовать 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
, похоже, прибегает к поведению по умолчанию, заданному ранее.
Есть подсказка?