Commit 482b508b authored by Kamron Aroonrua's avatar Kamron Aroonrua 💬

new dt plugin

parent a6f35a6b
#Changelog #Changelog
## [UR] - 2018-10-22
### Added
- PLUGIN :: dt-pdfmaker
- PLUGIN :: dt-transform ba64script
## [1.2.1] - 2018-10-11 ## [1.2.1] - 2018-10-11
### Added ### Added
......
var util = require('util');
var DTPlugin = require('../dt-plugin');
function DTTask(context,request){
DTPlugin.call(this,context,request);
this.name = "pdfmaker";
this.output_type = "";
}
util.inherits(DTTask,DTPlugin);
DTTask.prototype.perform = require('./perform');
module.exports = DTTask;
{
"name": "dt-pdfmaker",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"pdfmake": "^0.1.38"
}
}
var vm = require('vm');
var ctx = require('../context');
var Utils = ctx.getLib('lib/util/plugin-utils');
var pdfMake = require('pdfmake/build/pdfmake.js')
var pdfFonts = require('./vfs_fonts.js');
pdfMake.vfs = pdfFonts.pdfMake.vfs;
pdfMake.fonts = {
THSarabunNew : {
normal: 'THSarabunNew.ttf',
bold: 'THSarabunNew-Bold.ttf',
italics: 'THSarabunNew-Italic.ttf',
bolditalics: 'THSarabunNew-BoldItalics.ttf'
}
};
function perform_function(context,request,response){
var job_id = context.jobconfig.job_id;
var transaction_id = context.transaction.id;
var param = context.task.config.param;
var memstore = context.task.memstore
var in_type = request.input_type;
var in_data = request.data;
var in_meta = request.meta;
var mapscr = Utils.parse_script_param(param.script);
var doc = in_data;
if(typeof param.document == 'object'){
doc = param.document;
}
if(typeof param.document == 'string'){
mapscr = mapscr + "; document=" + param.document;
}
var mapenv = {
'src' : {
'type' : in_type,
'data' : in_data,
'meta' : in_meta
},
'type' : in_type,
'data' : in_data,
'meta' : in_meta,
'document':doc
}
var script = new vm.Script(mapscr);
var context = new vm.createContext(mapenv);
script.runInContext(context);
var meta = mapenv.meta;
var dd = mapenv.document;
var output_type = 'binary';
if(!dd.defaultDtyle){
dd.defaultStyle = {
font: 'THSarabunNew'
}
}else{
dd.defaultStyle.font = 'THSarabunNew';
}
var pdfDocGenerator = pdfMake.createPdf(dd);
pdfDocGenerator.getBase64((buf) => {
var data = Buffer.from(buf,'base64');
response.success(data,{'meta':meta,'output_type':output_type});
});
}
module.exports = perform_function;
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -14,9 +14,10 @@ function perform_function(context,request,response){ ...@@ -14,9 +14,10 @@ function perform_function(context,request,response){
var mapscr = Utils.parse_script_param(param.script); var mapscr = Utils.parse_script_param(param.script);
var datascr = param.text ; var datascr = param.text ;
var ba64script = param.ba64script;
if(param.text){ if(datascr){
mapscr = mapscr + "; data=`" + param.text + "`"; mapscr = mapscr + "; data=`" + datascr + "`";
} }
var mapenv = { var mapenv = {
...@@ -25,13 +26,21 @@ function perform_function(context,request,response){ ...@@ -25,13 +26,21 @@ function perform_function(context,request,response){
'data' : in_data, 'data' : in_data,
'meta' : in_meta 'meta' : in_meta
}, },
'_env':{},
'type' : in_type, 'type' : in_type,
'data' : in_data, 'data' : in_data,
'meta' : in_meta 'meta' : in_meta
} }
var script = new vm.Script(mapscr);
var context = new vm.createContext(mapenv); var context = new vm.createContext(mapenv);
if(ba64script && typeof ba64script == 'string'){
var strScript = Buffer.from(ba64script, 'base64').toString('utf8');
var b64s = new vm.Script(strScript);
b64s.runInContext(context);
}
var script = new vm.Script(mapscr);
script.runInContext(context); script.runInContext(context);
var data = mapenv.data; var data = mapenv.data;
......
{ {
"version":"1.2.1", "version":"1.2.2",
"build":"201810111600" "build":"201810221100"
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment