Отображать HTML письмо в формате PNG
У меня есть сообщение электронной почты в моем почтовом ящике IMAP. Это HTML электронная почта, которая использует шрифты, таблицы, изображения и тому подобное. Как мне преобразовать это электронное письмо в изображение PNG, которое выглядит достаточно близко к тому, что я вижу в моей почтовой программе?
Я могу почти достигнуть того, что хочу, распечатав PDF в моей почтовой программе, а затем используя pdftoppm -png преобразовать его в PNG. Однако в PDF есть поля страницы, которых нет в исходном письме. Также, pdftoppm создает один PNG на страницу, тогда как я хотел бы, чтобы все письма были в одном PNG без разрывов страниц.
Сделать снимок экрана не вариант, потому что электронная почта очень длинная.
Поскольку электронная почта HTML - это в основном HTML, существует ли какой-либо метод, который заключается в извлечении необработанного HTML из сообщения и передаче его в какой-либо инструмент рендеринга на основе WebKit?
2 ответа
Закончилось этим:
- Сохраните сообщение в
message.eml, - Перерабатывать
.emlв.htmlиспользуя этот скрипт на Python 3:
импорт электронной почты
импорт системы
msg = email.message_from_file(sys.stdin)
для части в msg.walk():
if part.get_content_type() == "text/html":
sys.stdout.buffer.write(part.get_payload(расшифровывает =True))
Запустите скрипт:
python3 eml-to-html.py < message.eml > message.htmlОткройте получившийся
message.htmlв Firefox.В меню Firefox выберите " Инструменты"> "Веб-разработчик"> "Панель инструментов разработчика", чтобы отобразить командную строку в нижней части окна браузера. Тип
screenshot --fullpage message.pngтам и нажмите Enter (согласно предложению Journeyman Geek).
Если это одноразовая вещь - Firefox делает это потрясающе. Shift f2 открывает консоль, и команда screenshot --fullpage filename показывает ваш экран в точности так, как вы его видите. Может быть, нужно немного поработать, если его в рамке.
Не уверен, что это тривиально автоматизируемый, но в противном случае он работает довольно хорошо.