【发布时间】:2015-05-28 12:09:48
【问题描述】:
我正在使用 jsPDF 在客户端创建 PDF。 现在,我的 PDF 中有图片,我想把它保存在我的服务器上。
问题是,没有图片就没有问题,但有了图片,生成的 PDF 就会损坏。
我该如何解决这个问题?
Javascript:
var pdf = doc.output();
var data = new FormData();
data.append("data" , pdf);
var xhr = new XMLHttpRequest();
xhr.open( 'post', 'ajax/upload.php', true );
xhr.send(data);
PHP:
if(!empty($_POST['data'])){
$data = $_POST['data'];
$fname = "einsatz.pdf"; // name the file
$file = fopen("../data/" .$fname, 'w'); // open the file path
fwrite($file, $data); //save data
fclose($file);
echo "Einsatzblatt saved";
}
else {
echo "No Data Sent";
}
感谢您的帮助!
更新 2015 年 5 月 29 日
该图像是从带有 blockspring 插件的谷歌地图生成的。 在那里我得到了一个 base64 png。
blockspring.runParsed("b21fb2a7b862354a76a7806ae9fc0a4d", { "color": "#d52c11", "zoom_level": 16, "address": ""+ adresse + "" }, { "api_key": "br_3080_5cec24d3c19bdc66c763138a974e14311facf637" }, function(res){
var imgData = 'data:image/png;base64,' + res.params.maps.data;
然后我创建 PDF
var doc = new jsPDF('landscape');
doc.addImage(imgData, 'png', 150, 45, 125, 125);
【问题讨论】:
-
可能,但如果不查看 PDF 是如何生成的以及它是如何“损坏”的,我们就无法真正判断出来
-
不,不一样!它适用于客户端的图像(doc.save('example.pdf')),但如果我想将其发送到服务器以将 PDF 直接保存在服务器上,那么 PDF 是否已损坏。如果没有图像的 PDF 则可以在服务器端保存!
标签: javascript php pdf base64 jspdf