Создать PDF из шаблона Vue - PullRequest
0 голосов
/ 18 декабря 2018

Мне нужно создать загружаемые PDF-файлы страницы, которая отображается с помощью Vue.API html to template, который мы используем, это DocRaptor.

  • API, построенный с использованием Rails
  • Клиент, построенный с использованием Vue

Возможны два типа подходов:

  1. Передача URL-адреса на страницу, которая затем отображается в PDF. Проблемы.

    • Страница находится за нашей аутентификацией, я передаю маркер сеанса в заголовке?
    • Страница вызывает наш API, что означаетдаже не имеет значения ... Я полагаю, что страница будет загружать только необработанный HTML, а не запускать JS в запросе DocRaptor POST.
  2. Передача необработанного HTML вPOST-запрос DocRaptor, со стилем. Проблемы

    • Мы не используем рендеринг на стороне сервера, поэтому не имеем доступа к красивой предварительно отрисованной html-строке
    • Изучаем, как скомпилировать vueк сырому html

Я здесь далеко от цели?

Два варианта выше кажутся подходящими.Хотелось бы, чтобы вариант 1 сработал, но я не понимаю, как - что оставляет меня с вариантом 2, однако никакие поиски в Google не дали мне ответов, кроме рендеринга на стороне сервера.Могу ли я сделать это для отдельных страниц?Я предполагаю, что все приложение отображается.

1 Ответ

0 голосов
/ 18 декабря 2018

Вы можете выполнить рендеринг в невидимый элемент на клиенте (или даже быть видимым и заставить пользователя думать, что это предварительный просмотр), а затем использовать старый добрый innerHTML:

let html = document.querySelector('#render-placeholder').innerHTML;

и затем опубликовать егона сервер для пересылки в pdf рендерер (чтобы сохранить токены доступа к сервису в тайне).

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