javascript - JS AJAX 将生成的文件作为 PDF 发布到服务器目录
问题描述
我有一个通过 javascript 生成的复杂表,我想在服务器上保存为 PDF。我查看了 pdf 生成库,它们似乎在样式、字体等方面都受到限制(这就是我所说的“复杂”)。该表格可以在客户端下载为 PDF 或打印。
假设我生成要打印的表单的函数是reportBody(data);
- 有没有一种方法可以AJAX
将文档作为 PDF 发送到 php 文件,将其保存在服务器端而不是在客户端下载?这reportBody(data)
是其他变量、函数调用等的集合。
所以基本上问题是 - 因为我们可以在客户端生成一个 PDF 文件,我们可以通过 ajax 将它(pdf)发布到服务器吗?
解决方案
简短的回答是肯定的。您提供的信息仍然有限,因为尚不清楚客户端中运行的内容,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));
推荐阅读
- python - matplotlib动画中产生的索引错误如何解决?
- java - 添加到链表的方法无法正常工作
- java - 连接新设备时如何自动重新加载 ChoiceBox?
- c# - 我想在我的位置靠近 pin xamarin 时发出通知
- javascript - 如何从 ID 中获取对象的名称
- c++ - 如何将firebase与libcurl连接
- python-3.x - 如何在python的类/文件中显示所有可用的函数/api
- node.js - 我怎样才能正确处理这个异步功能?
- graphql - Keystone.js 内容字段类型渲染最佳实践
- python - scipy.interpolate.splrep 函数在数据点之上