【问题标题】:JSPDF .output Image + txtJSPDF .输出图片+txt
【发布时间】:2019-03-04 02:35:33
【问题描述】:

所以我有一个正在使用的 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'); 

【问题讨论】:

    标签: javascript jspdf


    【解决方案1】:

    解决了希望这对任何人都有帮助。

    .output() 正确发送了所有日期,但是 base64 是如何被破坏的。所以我让 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";
    }

    【讨论】:

      猜你喜欢
      • 2020-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-14
      • 1970-01-01
      • 2016-08-15
      • 2020-03-23
      相关资源
      最近更新 更多