首页 > 解决方案 > JS AJAX 将生成的文件作为 PDF 发布到服务器目录

问题描述

我有一个通过 javascript 生成的复杂表,我想在服务器上保存为 PDF。我查看了 pdf 生成库,它们似乎在样式、字体等方面都受到限制(这就是我所说的“复杂”)。该表格可以在客户端下载为 PDF 或打印。

假设我生成要打印的表单的函数是reportBody(data);- 有没有一种方法可以AJAX将文档作为 PDF 发送到 php 文件,将其保存在服务器端而不是在客户端下载?这reportBody(data)是其他变量、函数调用等的集合。

所以基本上问题是 - 因为我们可以在客户端生成一个 PDF 文件,我们可以通过 ajax 将它(pdf)发布到服务器吗?

标签: javascriptajaxpdf

解决方案


简短的回答是肯定的。您提供的信息仍然有限,因为尚不清楚客户端中运行的内容,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));

推荐阅读