所以我有一个jspdf脚本,我正在使用它。.save按照预期工作,并输出图像+文本元素。
怎么做?
doc.output() =仅文本
doc.output('datauristring') =损坏的pdf
我想我在这里遗漏了一些东西,这是我的代码示例
var imgData = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQIAdgB2AAD/examplestringonly...';
var doc = new jsPDF('p', 'pt');
doc.text(35, 340, "data notes");
doc.addImage(imgData, 'JPEG', 350, 40, 200, 40);
doc.output('datauristring');
发布于 2019-03-04 02:35:34
希望这对任何人都有帮助。
无论base64是如何损坏的,.output()都正确地发送了所有日期。所以我让php处理datauri,并对它使用base64_decode()。然后将其保存到文件中。
完全修复了问题。
var pdf = doc.output('datauri');
var data = new FormData();
data.append("data" , pdf);
data.append("id" , id);
$.ajax({
url: 'upload.php',
data: data,
dataType: 'text',
processData: false,
contentType: false,
type: 'POST',
success: function (response) {
console.log('Exit to send request');
},
error: function (jqXHR) {
console.log('Failure to send request');
}
});
<?php
if(!empty($_POST['data'])){
$data = str_replace(' ','+',$_POST['data']);
$data = substr($imgData,strpos($imgData,",")+1);
$data = base64_decode($imgData);
$id = $_POST['id'];
$fname = "test.pdf"; // name the file
$file = fopen("api/warranty/pdf/" .$id, 'w'); // open the file path
fwrite($file, $data); //save data
fclose($file);
} else {
echo "No Data Sent";
}
https://stackoverflow.com/questions/54967478
复制相似问题