Как преобразовать HTML в PDF или изображение в AWS Lambda - PullRequest
1 голос
/ 03 июля 2019

Легко понять, как преобразовать html в изображение / pdf на экспресс-сервере, используя такие библиотеки, как html-pdf. Но я уже несколько недель пытаюсь понять, как заставить мой локально работающий код работать в AWS Lambda. Проблема в том, что используемая библиотека требует запуска phantomjs, и очень трудно запустить phantomjs в лямбда-AWS. Вы можете увидеть, что я пробовал здесь: Как установить фантомные игры на AWS lambda?

Этот вопрос не обязательно об этой борьбе. Этот вопрос более высокого уровня. Я ищу код, который принимает HTML и конвертирует его в PDF или изображение. Этот код не должен использовать html-pdf или phantomjs. Я ищу любой рабочий пример, который преобразует html в pdf / image и работает в лямбда-выражении. Он не должен посещать веб-страницу. У меня есть HTML в строковой переменной.

Я ищу ответ, который использует nodejs.

1 Ответ

1 голос
/ 04 июля 2019

Я решил точно такую ​​же проблему, используя библиотеку https://github.com/wkhtmltopdf/wkhtmltopdf. Есть несколько доступных проектов github, которые предоставляют некоторые дополнительные оболочки для запуска wkhtmltopdf внутри лямбды, но я не думаю, что их использование имеет большую ценность. Вот что я сделал:

1) Запустите Docker-контейнер, используя Amazon linux, Centos тоже хорошо

2) Скомпилируйте wkhtmltopdf самостоятельно или установите его, используя yum

3) Остановите контейнер и скопируйте wkhtmltopdf двоичный файл

4) Создать zip-архив со следующей структурой

wkhtmltopdf.zip
└ bin/wkhtmltopdf

5) Создайте лямбда-слой и загрузите ранее созданный архив

6) wkhtmltopdf станет доступным в лямбде $PATH

Пример выполнения:

Я использую python, но в nodejs он не будет сильно отличаться, поскольку мы просто выполняем команду

subprocess.run(['wkhtmltopdf', 'home.html', '/tmp/html.pdf'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...