Как я могу преобразовать мою текущую страницу в pdf после динамического добавления некоторого контента через AJAX?

Я нашел несколько библиотек или веб-сервисов на PHP, которые выполняют эту работу. Проблема в том, что преобразование выполняется, когда страница полностью загружена, я бы хотел конвертировать страницу в PDFпосле динамического добавления некоторого контента через AJAX в событии onload.

Большое Вам спасибо, Омар

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
4
0
1 733
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Когда вы добавляете контент с помощью AJAX, это происходит только на клиентском компьютере, поэтому серверный код преобразования PHP не будет работать с ним. Вам нужно будет придумать серверный метод включения динамического содержимого, если вы хотите создавать PDF-файлы на сервере.

Это требование на стороне клиента из-за ситуации с Ajax. Если они используют Mac, они могут просто сохранить в формате PDF, но в противном случае у вас мало контроля над тем, что они могут делать.

Однако что вы можете сделать для реализации на стороне сервера, так это вести учет страницы и всех их запросов AJAX с момента загрузки этой страницы и создавать HTML и PDF на сервере из этой записи, если это требуется. Конечно, это непростая задача и излишняя. Вам, вероятно, было бы лучше иметь другой механизм для создания серверного отчета в формате PDF для страницы, отличный от преобразования HTML в PDF.

Вы могли бы реализовать вызов AJAX, который отправлял бы содержимое / состояние страницы обратно на сервер после добавления динамического содержимого, где его можно было бы отобразить как pdf. Возможно, вам не понадобится вся страница, в зависимости от того, куда будет идти этот «динамический контент».

Кажется немного запутанным, но, не зная проекта, трудно сказать, может ли быть более чистый способ сделать то, что вы пытаетесь сделать.

Вы можете отправить document.getElementsByTagName('html')[0].innerHTML на сервер (возможно, используя AJAX) и сгенерировать из него PDF.

Если ваша страница может быть обновлена ​​только на клиенте, без обращения к серверу, вам придется опубликовать резервную копию в своем приложении. Таким образом, у вас будет весь контент, и вам не придется перестраивать, что было бы невозможно, если бы были взаимодействия только на стороне клиента.

Ответ принят как подходящий

Вау, спасибо всем, я не знал, что это сообщество такое активное. Чтобы ответить на Beepcake о проекте:

Когда страница загружается, приложение извлекает с более чем 40 серверов биологическую информацию через запрос AJAX, затем отображается уникальное представление, в котором вы можете управлять графикой с множеством опций.

Так что лучше всего будет распечатать, когда пользователь сделает свою собственную версию графики. Я думаю, что лучшее решение - отправить весь HTML-код с помощью document.getElementsByTagName ('html') [0] .innerHTML, как сказал Роборг, а затем сгенерировать PDF-файл с помощью такой библиотеки, как dompdf

Другие вопросы по теме