在Nativescript中集成jsPDF

时间:2017-05-25 12:07:59

标签: nativescript angular2-nativescript

我研究了使用jsPDF,json响应cna可以转换成PDF然后可以下载。有没有办法将JsPDF集成到nativescript应用程序中?

1 个答案:

答案 0 :(得分:0)

使用jsPDF和NativeScript检查以下POC,您需要覆盖jsPDF所需的一些全局变量,并从npm安装一些包:

proxy_set_header Host $http_host;

示例:https://play.nativescript.org/?template=play-ng&id=OGrw9s&v=8

另一方面,您可以将NativeScript填充程序用于aotb / btoa函数,以避免从npm安装更多软件包(仅安装jspdf和@ types / jspdf):https://play.nativescript.org/?template=play-ng&id=OGrw9s&v=13

正如您在组件的逻辑中所看到的,您需要导入文件并修改一些全局变量:

global['window'] = {
  'document': {
    'createElementNS': () => { return {} }
  }
};
global['document'] = {
  'createElement': (str) => { return {} }
};
global['navigator'] = {};

import * as base64 from 'base-64';
import * as utf8   from 'utf8';
import * as jsPDF  from 'jspdf';

global['btoa'] = (str) => {
  var bytes = utf8.encode(str);
  return base64.encode(bytes);
};

使用该解决方案创建一个jsPDF分支会好得多。

稍后您可以创建PDF:

require('../base64')

global['window'] = {
  'document': {
    'createElementNS': () => { return {} }
  },
  'atob': global['atob']
};
global['document'] = {
  'createElement': (str) => { return {} }
};
global['navigator'] = {};