Есть ли способ заставить jspdf работать в Android Studio? - PullRequest
0 голосов
/ 11 марта 2020

Я создаю приложение в Android Studio, храня файлы html в папке ресурсов. Один из файлов html использует jspdf для печати содержимого всей страницы в виде изображения в формате PDF. Когда я запускаю приложение и нажимаю на кнопку, вызывающую функцию jspdf, приложение вылетает. Может кто-нибудь помочь, пожалуйста?

function CreatePDFfromHTML(){
var name = document.getElementById('name').value;
var loc = document.getElementById('loc').value;
var num = document.getElementById('num').value;
var cars = [name, loc , num];

var HTML_Width = $("#tab-2").width();
var HTML_Height = $("#tab-2").height();
var top_left_margin = 15;
var PDF_Width = HTML_Width+(top_left_margin*2);
var PDF_Height = (PDF_Width*1.5)+(top_left_margin*8);
var canvas_image_width = HTML_Width;
var canvas_image_height = HTML_Height;

var totalPDFPages = Math.ceil(HTML_Height/PDF_Height)-1;

html2canvas($("#tab-2")[0],{allowTaint:true}).then(function(canvas) {
canvas.getContext('2d');
console.log(canvas.height+"  "+canvas.width);
var imgData = canvas.toDataURL("image/jpeg", 1.0);
    var pdf = new jsPDF('p', 'pt',  [PDF_Width, PDF_Height]);
     pdf.addImage(imgData, 'JPG', top_left_margin, top_left_margin,canvas_image_width,canvas_image_height);
 pdf.setFontSize(10);
 pdf.setTextColor(38, 59, 129);
 pdf.text(20, 29, 'Cust. Name:');
 pdf.text(90, 29, cars[0]);
 pdf.text(20, 39, 'Cust. Location:');
 pdf.text(90, 39, cars[1]);
 pdf.text(20, 49, 'Cust. Number:');
 pdf.text(90, 49, cars[2]);

 for (var i = 1; i <= totalPDFPages; i++) {
   pdf.addPage(PDF_Width, PDF_Height);
   pdf.addImage(imgData, 'JPG', top_left_margin, -(PDF_Height*i)+(top_left_margin*5),canvas_image_width,canvas_image_height);
 }

 pdf.save("RoadMaster_Summary.pdf");

}); };

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...