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

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

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

Ответы [ 6 ]

5 голосов
/ 10 октября 2008

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

4 голосов
/ 10 октября 2008

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

2 голосов
/ 10 октября 2008

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

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

1 голос
/ 10 октября 2008

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

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

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

1 голос
/ 10 октября 2008

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

1 голос
/ 10 октября 2008

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

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

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