Отображать 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
показывает ваш экран в точности так, как вы его видите. Может быть, нужно немного поработать, если его в рамке.
Не уверен, что это тривиально автоматизируемый, но в противном случае он работает довольно хорошо.