Распечатать часть окна браузера в PDF и отправить на сервер для отправки по факсу - PullRequest
0 голосов
/ 02 ноября 2018

Как гласит заголовок, у меня есть требование распечатать часть окна браузера в PDF, а затем отправить ее на сервер, чтобы ее можно было отправить по факсу. Я уже нашел службу факсимильной связи, поэтому реальная проблема заключается в том, чтобы выяснить, как с самого начала сгенерировать pdf. Для этого у меня есть несколько вариантов, но все они имеют существенные недостатки. Это:

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

Буду признателен за любые предложения, не перечисленные выше, а также за советы по устранению недостатков, связанных с этими вариантами. Заранее спасибо!

1 Ответ

0 голосов
/ 06 ноября 2018

Похоже, что с помощью jspdf для рендеринга PDF вместе с библиотекой, такой как html2canvas, чтобы преобразовать область печати в изображение для сохранения стилей, работа будет выполнена. Потребовалась определенная работа, чтобы все правильно настроить (и я еще не закончил), но я уверен, что это решение будет эффективным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...