Как программно вызывать функцию Сохранить как PDF в браузере Opera?
В браузере Opera есть функция Сохранить как PDF, как взывать эту функцию программно на языках JavaScript или PHP?
Планирую сделать конвертер веб-страниц в PDF используя этот браузер. Все внешние сервисы предлагающие такое API делают конвертацию криво, с косяками и только браузер Opera делает правильный сплошной PDF-скриншот. В наличии LEMP сервер на Ubuntu 20.04, там буду держать браузер все время открытым. В браузер будет установлено самописное расширение для управления и выполнения заданий на PDF-скриншотирование.
Во всех браузерах можно вызвать окно печати через window.print(); а там уже пользователь может выбрать Save as PDF в качестве принтера. Других вариантов (кроме разной степени глючности скриптов для конвертации html в pdf) я не знаю.
1. Сначала снимаем скриншот страницы в формате jpeg используя html2canvas. Скриншот можно делать частями, если страница большая, также можно использовать прокси для обхода CORS, чтобы грузились изображения с других доменов.
2. Сделанные скриншоты засылаем на PHP, а там при помощи библиотеки TCPDF собираем в единый сплошной PDF холст, без деления на страницы, получается просто конфетка.
Я все это уже реализовал, работает хорошо, прям отлично, можно даже выбирать качество картинок и скриншота.