Как гласит заголовок, у меня есть требование распечатать часть окна браузера в PDF, а затем отправить ее на сервер, чтобы ее можно было отправить по факсу. Я уже нашел службу факсимильной связи, поэтому реальная проблема заключается в том, чтобы выяснить, как с самого начала сгенерировать pdf. Для этого у меня есть несколько вариантов, но все они имеют существенные недостатки. Это:
- Используйте
window.print()
по нажатию кнопки вместе с запросами печатных СМИ и попросите пользователя загрузить полученный PDF и повторно загрузить его для отправки по факсу. Проблема в том, что это многошаговый процесс, и мои пользователи предпочли бы просто нажать одну кнопку
- Используйте библиотеку наподобие jspdf , чтобы сгенерировать pdf, вывести в байтовый массив и загрузить его на сервер. Это будет работать, однако это выглядит ужасно, потому что я теряю все стили, и мои запросы печатных СМИ не будут применены. Пока что это мой лучший вариант
- Визуализируйте серверную часть HTML и сгенерируйте PDF из этого. Это будет работать нормально, однако требует дублирования всей работы, которую я выполнял на стороне клиента (это приложение SPA), а также дублирования обслуживания.
- Используйте службу рендеринга или библиотеку для запуска клиентского приложения в автономном браузере и создания PDF-файла из этого вывода. Это было бы очень сложно с точки зрения безопасности, так как приложение находится за страницей входа в систему.
Буду признателен за любые предложения, не перечисленные выше, а также за советы по устранению недостатков, связанных с этими вариантами. Заранее спасибо!