|
@@ -191,6 +191,27 @@ function buildCellSvg(cell, fonts, styles, controls, pageMergeBorder, rptMergeBo
|
|
|
return rst.join("");
|
|
|
}
|
|
|
|
|
|
+function _splitValues(cell, control, orgValues, ctx2D) {
|
|
|
+ //根据control的 自动折行 及 缩放优先 这俩属性 来分解cell value
|
|
|
+ if (control[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_WRAP]] === 'T' && control[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_SHRINK_FIRST]] !== 'T') {
|
|
|
+ let vals = [];
|
|
|
+ let validAreaTxtWidth = cell[JV.PROP_AREA][JV.PROP_RIGHT] - JV.OUTPUT_OFFSET[JV.OFFSET_IDX_RIGHT] - cell[JV.PROP_AREA][JV.PROP_LEFT] - JV.OUTPUT_OFFSET[JV.OFFSET_IDX_LEFT];
|
|
|
+ for (let val of orgValues) {
|
|
|
+ let actW = ctx2D.measureText(val).width;
|
|
|
+ if (actW > validAreaTxtWidth) {
|
|
|
+ vals = vals.concat(private_splitString(val, validAreaTxtWidth, ctx2D));
|
|
|
+ } else {
|
|
|
+ vals.push(val);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (vals.length > orgValues.length) {
|
|
|
+ for (let idx = 0; idx < vals.length; idx++) {
|
|
|
+ orgValues[idx] = vals[idx];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
function buildText(destRst, cell, font, control, offsetX, offsetY, adjustY, canvas, isHtoV, HtoVStr) {
|
|
|
let orgFontHeight = parseInt(font[JV.FONT_PROPS[JV.FONT_PROP_IDX_HEIGHT]]);
|
|
|
let fontWeight = (font[JV.FONT_PROPS[JV.FONT_PROP_IDX_BOLD]] === 'T')?"bold":"normal";
|
|
@@ -234,6 +255,8 @@ function buildText(destRst, cell, font, control, offsetX, offsetY, adjustY, canv
|
|
|
area[JV.IDX_RIGHT] = right;
|
|
|
let height = bottom - top;
|
|
|
let ctx = canvas.getContext("2d");
|
|
|
+ ctx.font = ((font[JV.FONT_PROPS[JV.FONT_PROP_IDX_BOLD]] === 'T')?"bold ":"") + ((font[JV.FONT_PROPS[JV.FONT_PROP_IDX_ITALIC]] === 'T')?"italic":"") + orgFontHeight + "px " + font[JV.PROP_NAME];
|
|
|
+ _splitValues(cell, control, values, ctx);
|
|
|
let inner_draw_text = function (textValue) {
|
|
|
let dftFontHeight = orgFontHeight;
|
|
|
ctx.font = ((font[JV.FONT_PROPS[JV.FONT_PROP_IDX_BOLD]] === 'T')?"bold ":"") + ((font[JV.FONT_PROPS[JV.FONT_PROP_IDX_ITALIC]] === 'T')?"italic":"") + dftFontHeight + "px " + font[JV.PROP_NAME];
|