Comments 13
https://gotenberg.dev/ - A containerized API for seamless PDF conversion
А нет ли там фатального недостатка?
Именно его и использую под капотом в онлайн-сервисе. В расширении используется Devtools Protocol.
А что не так со встроенными средствами браузера конвертации страниц в PDF?
Ради теста решил запустить скачку вашей же статьи с вашего сайта и стандартными средствами браузера.
Итог: С вашего сайта в PDF не конвертируется часть картинок.
Стандартные возможности браузера в том же виде как у вас сохраняют вёрстку, но при этом загружают все картинки.
А что не так со встроенными средствами браузера конвертации страниц в PDF?
Нельзя сохранить страницу без разрывов, внешний вид будет сильно отличаться от исходной страницы. До недавних пор текст нельзя было выделять, сейчас завезли OCR, но ссылки всё равно остаются не кликабельными.
С вашего сайта в PDF не конвертируется часть картинок.
Только что попробовал сделать то же самое - действительно, в некоторых случаях картинки не прогружаются. Это как раз то, о чём я писал. Я так и не нашёл нормального способа прогружать все картинки.
Если у кого есть идеи как прогрузить все lazy-loading картинки, буду рад если поделитесь в комментариях.
Может быть пройтись по всему DOM и принудительно эмулировать клик, или что то подобное для такого рода картинок?
Клик может триггернуть непредсказуемое поведение.
Сейчас я прохожусь в DOM по всем картинкам: прокручиваю страницу к каждой картинке, жду ~100мс и перехожу к следующей картинке.
Я не крут во фронтэнде, потому и вопрос может глупый, для lazy-loading используется какой то типизированный подход типа аттрибутов или за счет js кода?
Есть атрибут loading="lazy", но он используется не всегда. Иногда хитро реализуют с помощью JS. Поэтому, я игнорирую эти атрибуты и прохожусь по всем img, чтобы наверняка.
Понимаю! Ну, тогда я пас. Я как то в таком случае затрудняюсь даже предположить что можно делать. Разве что влазить внутрь таких элементов и искать есть ли у них подписаные события, которые должны срабатывать на появление элемента в поле видимости пользователя, и тогда на них делать либо дополнительную задержку, либо принудительно вызывать такие события.
этот длинный pdf еще надо в чем то прочесть. под windows есть удачный просмотрщик - без проблем. Под linux, android просмотр длинного pdf вызывает как минимум тормоза, а то и вообще не отражается.
экспорт аддоном SingleFile в html дает куда как более смотрибельный результат
этот длинный pdf еще надо в чем то прочесть.
Для просмотра PDF не нашёл ничего быстрее, чем встроенный просмотрщик Chrome, даже на очень длинных и тяжелых PDF (>200 мб) он работает вполне сносно.
экспорт аддоном SingleFile в html дает куда как более смотрибельный результат
SingleFile - это оно? Интересное расширение, я посмотрю как у него внутри сделана прогрузка картинок, может подчерпну что для себя. Спасибо!
Кстати, для подобных целей есть CTRL+S и там можно выбрать не html, а mhtml и то же самое будет - одностраничная копия html страницы. Попробуйте, когда не нужен PDF, это довольно удобно.
можно выбрать не html, а mhtml
уж я наигрался в сохранение .mht в opera а потом внезапно их стало нечем открыть кроме внезапно мелгомякого браузера. сохранки SingleFile пока что открываю скажем на телефоне без вопросов, картинки в себя он интегрирует как data:image/png;base64
Но тут тоже прикол: на opera этот аддон похоже прикрыли не помню как и зачем в opera добавлял, наверное из chrome магазина. есть ссылка https://www.getsinglefile.com/ из cli конечно интересно но в браузере можно добавить ublock с большим набором косметических фильтров
Как написать конвертер веб-страниц в PDF и не сойти с ума