BentoPDF: бесплатный PDF-инструмент с Docker и конвейерами
Сначала прохладно отнёсся к нему. Таких штук как-будто бы много. Я ранее уже встречал. Но всё же посмотрел на него повнимательнее, развернул и попробовал. Штука на самом деле полезная, хоть и не всё там заработало, как хотелось бы, но решил таки рассказать о ней. В каких-то ситуациях она может очень сильно облегчить жизнь.
📌 Кратко перечислю особенности BentoPDF:
▪️Как уже сказал, это полностью бесплатный открытый проект одного человека. По сути его хобби.
▪️Написан на чистом JavaScript, вся обработка на стороне клиента, то есть в его браузере, поэтому никаких особых ресурсов сервера ему не надо. По сути это просто статическая html страничка с JavaScript.
▪️Всё это упаковано в небольшой проект на Docker. Запускается просто, ресурсов особых не требует.
▪️Попробовать всю функциональность можно на сайте bentopdf.com.
Мне даже трудно перечислить всё, что может BentoPDF. По сути всё, что можно только придумать для PDF - конвертировать, извлекать картинки, сжимать, объединять, обрезать, переворачивать, шифровать, ставить подписи, добавлять картинки и т.д.
Отдельно отмечу, что можно собрать конвейер обработки из разных действий и пачкой передавать туда файлы. Для тех, кто постоянно и на потоке что-то делает с PDF, это может очень облегчить жизнь.
По сути с помощью BentoPDF можно вообще разгрузить пользовательские компьютеры от каких-то PDF редакторов и делать всё через общий сервис в браузере. Причём работать это будет во всех операционных системах.
К сожалению, там подглючивает конвертация из некоторых форматов в PDF. У меня периодически процесс подвисает и не преобразовывает. Выскакивает ошибка: "An error occurred during conversion. Error: WASM initialization timeout". Я зашёл в Issues на гихабе, посмотреть, нет ли у кого-нибудь таких же ошибок. Вообще никто не жалуется. Понял, что проблема где-то у меня.
Стал разбираться. Выяснил, что преобразование происходит с помощью WASM (WebAssembly). Эта библиотека загружается клиентом из публичных CDN в момент запуска преобразования. И судя по всему, что-то не может скачаться. Если запускать через ВПН, то нормально работает. Я немного поковырялся, выяснил, что ссылки на скрипты с обработкой зашиты в образе Docker в момент сборки. Их можно либо через .env переназначить, либо потом в веб интерфейсе в разделе Advanced Settings, в самом низу страницы. Подробно это описано в репозитории. Если у себя будете разворачивать на постоянную работу, то просто скачайте эти скрипты себе локально и пересоберите образ со своими урлами.
Всё остальное вроде нормально работает. Я пробовал добавление и удаление текста, вставку картинок, рукописных подписей и некоторые другие операции. Причём редактор удобный. Мне понравился больше моего нативного на компе.
Сервис в целом понравился. Можно всё настроить, запустить локально и не переживать за обновление, поддержку всей этой функциональности на стороне клиентов.
#docs