|
@@ -12,7 +12,7 @@ let JpcCanvasOutput = {
|
|
|
ctx.clearRect(0,0, canvas.width, canvas.height);
|
|
|
ctx.restore();
|
|
|
},
|
|
|
- drawToCanvas : function(pageObj, canvas, pageIdx) {
|
|
|
+ drawToCanvas : function(pageObj, canvas, pageIdx,hideSignature=false) {
|
|
|
let me = this;
|
|
|
let ctx = canvas.getContext("2d");
|
|
|
let floatReg = /^(-?\d+)(\.\d+)?$/;
|
|
@@ -21,6 +21,8 @@ let JpcCanvasOutput = {
|
|
|
strReplaceReg3 = new RegExp('\n', 'gm'),
|
|
|
strReplaceReg4 = new RegExp('\r', 'gm')
|
|
|
;
|
|
|
+ // 新增签章移动的功能
|
|
|
+ const moveSignatureTool = new MoveSignatureTool(ctx,canvas,pageObj, pageIdx,this);
|
|
|
|
|
|
function private_setupAreaH(area, type, fontAngle, dftFontHeight, outputPoint) {
|
|
|
let lType = type;
|
|
@@ -415,7 +417,7 @@ let JpcCanvasOutput = {
|
|
|
private_drawCellText(cell, fonts, controls);
|
|
|
ctx.restore();
|
|
|
}
|
|
|
- function private_drawSignatureCell(cell, fonts, styles, controls, mergedBand) {
|
|
|
+ function private_drawSignatureCell(cell, fonts, styles, controls, mergedBand,moveSignatureTool) {
|
|
|
ctx.save();
|
|
|
ctx.translate(0.5,0.5);
|
|
|
let style = styles[cell[JV.PROP_STYLE]];
|
|
@@ -426,10 +428,10 @@ let JpcCanvasOutput = {
|
|
|
private_drawLine(cell, ctx, style, JV.PROP_BOTTOM, [JV.PROP_RIGHT, JV.PROP_BOTTOM],[JV.PROP_LEFT, JV.PROP_BOTTOM], mergedBand, styles, isNeedMergeBand);
|
|
|
private_drawLine(cell, ctx, style, JV.PROP_LEFT, [JV.PROP_LEFT, JV.PROP_BOTTOM],[JV.PROP_LEFT, JV.PROP_TOP], mergedBand, styles, isNeedMergeBand);
|
|
|
}
|
|
|
- private_drawSignatureCellText(cell, controls);
|
|
|
+ private_drawSignatureCellText(cell, controls,moveSignatureTool);
|
|
|
ctx.restore();
|
|
|
}
|
|
|
- function private_drawSignatureCellText(cell, controls) {
|
|
|
+ function private_drawSignatureCellText(cell, controls,moveSignatureTool) {
|
|
|
let control = null;
|
|
|
if (typeof cell[JV.PROP_CONTROL] === "string") {
|
|
|
control = controls[cell[JV.PROP_CONTROL]];
|
|
@@ -439,12 +441,12 @@ let JpcCanvasOutput = {
|
|
|
if (cell.pic) {
|
|
|
const img = new Image();
|
|
|
img.src = cell.pic;
|
|
|
- // img.crossOrigin = 'anonymous';
|
|
|
+ img.crossOrigin = 'anonymous';
|
|
|
img.onload = function() {
|
|
|
if (cell.signature_name.indexOf(JV.SIGNATURE_NAME_DUMMY) >= 0) {
|
|
|
- private_drawImage(cell, control, img, (!!cell.isStamp), [1, 1, 1, 1]);
|
|
|
+ private_drawImage(cell, control, img,moveSignatureTool, (!!cell.isStamp), [1, 1, 1, 1]);
|
|
|
} else {
|
|
|
- private_drawImage(cell, control, img);
|
|
|
+ private_drawImage(cell, control, img,moveSignatureTool);
|
|
|
}
|
|
|
// private_drawImage(cell, control, img);
|
|
|
};
|
|
@@ -456,12 +458,12 @@ let JpcCanvasOutput = {
|
|
|
} else {
|
|
|
img.src = cell.path;
|
|
|
}
|
|
|
- // img.crossOrigin = 'anonymous';
|
|
|
+ img.crossOrigin = 'anonymous';
|
|
|
img.onload = function() {
|
|
|
if (cell.signature_name.indexOf(JV.SIGNATURE_NAME_DUMMY) >= 0) {
|
|
|
- private_drawImage(cell, control, img, (!!cell.isStamp), [1, 1, 1, 1]);
|
|
|
+ private_drawImage(cell, control, img,moveSignatureTool, (!!cell.isStamp), [1, 1, 1, 1]);
|
|
|
} else {
|
|
|
- private_drawImage(cell, control, img);
|
|
|
+ private_drawImage(cell, control, img,moveSignatureTool);
|
|
|
}
|
|
|
// private_drawImage(cell, control, img, (!!cell.isStamp));
|
|
|
};
|
|
@@ -528,7 +530,12 @@ let JpcCanvasOutput = {
|
|
|
rst[3] = rst[3] + JpcCanvasOutput.offsetY;
|
|
|
return rst;
|
|
|
}
|
|
|
- function private_drawImage(cell, control, imageData, orgSize = false, offsetArea) {
|
|
|
+ function private_drawImage(cell, control, imageData,moveSignatureTool, orgSize = false, offsetArea) {
|
|
|
+ // 新增签章数据到移动工具中
|
|
|
+ if(moveSignatureTool){
|
|
|
+ const {Left,Right,Top,Bottom}=cell.area;
|
|
|
+ moveSignatureTool.setSignature(imageData, Left* JpcCanvasOutput.scaleFactor, Top* JpcCanvasOutput.scaleFactor, (Right-Left)* JpcCanvasOutput.scaleFactor, (Bottom-Top)* JpcCanvasOutput.scaleFactor ,cell.signature_name,cell.signatureName,cell.signType);
|
|
|
+ }
|
|
|
let area = private_getProperSignatureArea(cell, control);
|
|
|
if (orgSize) {
|
|
|
area[0] = cell.area.Left + JpcCanvasOutput.offsetX; // Left
|
|
@@ -542,8 +549,12 @@ let JpcCanvasOutput = {
|
|
|
area[2] = area[2] - offsetArea[2]; // Right
|
|
|
area[3] = area[3] - offsetArea[3]; // Bottom
|
|
|
}
|
|
|
- ctx.drawImage(imageData, area[0] * JpcCanvasOutput.scaleFactor, area[1] * JpcCanvasOutput.scaleFactor,
|
|
|
- (area[2] - area[0]) * JpcCanvasOutput.scaleFactor, (area[3] - area[1]) * JpcCanvasOutput.scaleFactor);
|
|
|
+ // debugger
|
|
|
+ if(!cell.isMoving){
|
|
|
+ ctx.drawImage(imageData, area[0] * JpcCanvasOutput.scaleFactor, area[1] * JpcCanvasOutput.scaleFactor,
|
|
|
+ (area[2] - area[0]) * JpcCanvasOutput.scaleFactor, (area[3] - area[1]) * JpcCanvasOutput.scaleFactor);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
function getIniPageMergeBorder(mergedBand) {
|
|
|
let rst = {};
|
|
@@ -576,14 +587,19 @@ let JpcCanvasOutput = {
|
|
|
}
|
|
|
//电子签名
|
|
|
if (page.signature_cells && page.signature_cells.length > 0) {
|
|
|
- for (let k = 0; k < page.signature_cells.length; k++) {
|
|
|
+
|
|
|
+
|
|
|
+ for (let k = 0; k < page.signature_cells.length; k++) {
|
|
|
let cell = page.signature_cells[k];
|
|
|
if (PAGE_SHOW['isTextSignature'] === 0 || cell.signature_name.indexOf(JV.SIGNATURE_NAME_DUMMY) >= 0) {
|
|
|
// 如果是非文本签名或草图,才显示图片(文本签名已经在后台单独处理,在cells数组内增加一个合适的cell)
|
|
|
- private_drawSignatureCell(cell, fonts, styles, controls, newPageMergeBand);
|
|
|
+ if(!hideSignature) private_drawSignatureCell(cell, fonts, styles, controls, newPageMergeBand,moveSignatureTool);
|
|
|
}
|
|
|
- // private_drawSignatureCell(cell, fonts, styles, controls, newPageMergeBand);
|
|
|
+ private_drawSignatureCell(cell, fonts, styles, controls, newPageMergeBand);
|
|
|
}
|
|
|
+
|
|
|
+ moveSignatureTool.domAddEventListener(canvas);
|
|
|
+
|
|
|
}
|
|
|
//水印
|
|
|
if (PAGE_SHOW['closeWatermark'] === 0) {
|