|
|
@@ -136,10 +136,41 @@ function export_pdf_file (pageData, paperSize, fName, callback) {
|
|
|
}
|
|
|
let height = cell[JV.PROP_AREA][JV.PROP_BOTTOM] - cell[JV.PROP_AREA][JV.PROP_TOP];
|
|
|
let area = [cell[JV.PROP_AREA][JV.PROP_LEFT] + offsetX, cell[JV.PROP_AREA][JV.PROP_TOP] + offsetY, cell[JV.PROP_AREA][JV.PROP_RIGHT] + offsetX, cell[JV.PROP_AREA][JV.PROP_BOTTOM] + offsetY];
|
|
|
+ let ah = height;
|
|
|
+ let restTopH = 0, restBottomH = 0;
|
|
|
+ if (control[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_CLOSE_OUTPUT]] === 'T') {
|
|
|
+ ah = (parseFloat(font[JV.FONT_PROPS[1]]) + JV.OUTPUT_OFFSET[JV.OFFSET_IDX_TOP] + JV.OUTPUT_OFFSET[JV.OFFSET_IDX_BOTTOM]) * values.length;
|
|
|
+ let restH = height - ah;
|
|
|
+ if (control[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_VERTICAL]] === 'center') {
|
|
|
+ restTopH = restH / 2;
|
|
|
+ restBottomH = restH / 2;
|
|
|
+ } else if (control[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_VERTICAL]] === 'bottom') {
|
|
|
+ restBottomH = restH;
|
|
|
+ } else {
|
|
|
+ restTopH = restH;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let spaceIdxArr = [];
|
|
|
for (let i = 0; i < values.length; i++) {
|
|
|
- area[JV.IDX_TOP] = cell[JV.PROP_AREA][JV.PROP_TOP] + i * (height / values.length) + offsetY;
|
|
|
- area[JV.IDX_BOTTOM] = cell[JV.PROP_AREA][JV.PROP_TOP] + (i + 1) * (height / values.length) + offsetY;
|
|
|
+ // area[JV.IDX_TOP] = cell[JV.PROP_AREA][JV.PROP_TOP] + i * (height / values.length) + offsetY;
|
|
|
+ // area[JV.IDX_BOTTOM] = cell[JV.PROP_AREA][JV.PROP_TOP] + (i + 1) * (height / values.length) + offsetY;
|
|
|
+ area[JV.IDX_TOP] = cell[JV.PROP_AREA][JV.PROP_TOP] + i * (ah / values.length) + offsetY + restTopH;
|
|
|
+ area[JV.IDX_BOTTOM] = cell[JV.PROP_AREA][JV.PROP_TOP] + (i + 1) * (ah / values.length) + offsetY + restBottomH;
|
|
|
+ if (values[i] === null || values[i] === undefined || values[i] === 'null') {
|
|
|
+ values[i] = "";
|
|
|
+ }
|
|
|
+ // 因pdfkit输出空格只有一半宽度,需要额外加空格补上 -----------------------------
|
|
|
+ if (typeof(values[i]) === "string") {
|
|
|
+ for (let j = 0; j < values[i].length; j++) {
|
|
|
+ if (values[i][j] === ' ') spaceIdxArr.push(j);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (let j = spaceIdxArr.length - 1; j >= 0; j--) {
|
|
|
+ values[i] = values[i].slice(0, spaceIdxArr[j]) + ' ' + values[i].slice(spaceIdxArr[j]);
|
|
|
+ }
|
|
|
+ // -----------------------------
|
|
|
private_drawText(values[i], area, font, control);
|
|
|
+ spaceIdxArr = [];
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -243,7 +274,7 @@ function export_pdf_file (pageData, paperSize, fName, callback) {
|
|
|
while (true) {
|
|
|
//*/
|
|
|
let lines = Math.floor((area[JV.IDX_BOTTOM] - area[JV.IDX_TOP]) / (dftFontHeight + JV.OUTPUT_OFFSET[JV.OFFSET_IDX_BOTTOM] + JV.OUTPUT_OFFSET[JV.OFFSET_IDX_TOP] + 4));
|
|
|
- lines = (lines === 0)?1:lines;
|
|
|
+ lines = (lines === 0 || (control.Shrink === 'T' && control.ShrinkFirst === 'T'))?1:lines;
|
|
|
let actLines = private_splitString(val, validAreaTxtWidth, doc);
|
|
|
if (actLines.length > lines && dftFontHeight >= 6) {
|
|
|
dftFontHeight--;
|