JS AJAX для публикации сгенерированного файла в формате PDF в каталоге сервера - PullRequest
0 голосов
/ 09 мая 2018

У меня сложная таблица, созданная с помощью JavaScript, которую я хотел бы сохранить в формате PDF на сервере. Я посмотрел на библиотеки поколения pdf, и все они кажутся ограниченными с точки зрения стиля, шрифтов и т. Д. (Это я и имел в виду под «сложным»). Таблицу можно скачать на стороне клиента в формате PDF или распечатать.

Допустим, моя функция, которая генерирует форму для печати, - reportBody(data); - есть ли способ, которым я могу использовать AJAX, чтобы отправить документ в формате PDF в файл php, который сохранит его на стороне сервера, а не загружает его сторона клиента? reportBody(data) - это набор других переменных, вызовов функций и т. Д.

Таким образом, в основном вопрос заключается в том, что, поскольку мы можем сгенерировать файл PDF на стороне клиента, можем ли мы отправить его (pdf) через ajax на сервер?

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Краткий ответ - Да. Предоставленная вами информация по-прежнему ограничена, так как неясно, что запускается в reporBody(data), но большинство библиотек PDF на стороне клиента могут предоставить вам файл PDF в виде данных в кодировке base64 в виде строки. Затем вы можете просто отправить эту строку на сервер и сохранить ее в виде файла PDF. Простая реализация будет примерно такой:

// I have used jQuery for convenience but you can use any lib or Vanilla JS         
var saveData = $.ajax({
          type: 'POST',
          url: "url-to-the-php-script",
          data: { pdfData: 'base64StringDataHere'},
          dataType: "JSON",
          success: function(resultData) { alert("Save Complete") }
    });

Затем на стороне сервера сделайте что-то вроде этого:

$pdfData= $_POST['pdfData'];    
file_put_contents('filename.pdf', base64_decode($pdfData));
0 голосов
/ 09 мая 2018

Да, есть много способов. Один из них будет, если у вас есть HTML-код в вашем reportBody (data); Вы могли бы:

  • Отправка html в php файл через ajax
  • в этом PHP вы можете использовать https://wkhtmltopdf.org/ для создания PDF-файла
  • На стороне клиента вы можете указать, что PDF сгенерирован
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...