ztxkutils 2.10.16 → 2.10.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/print.d.ts +13 -0
- package/dist/print.js +115 -32
- package/package.json +1 -1
package/dist/print.d.ts
CHANGED
@@ -30,6 +30,19 @@ export declare function htmlToPdf({ pageClassName, dom, pdfName, isShowPage, noW
|
|
30
30
|
pdfOptions?: any;
|
31
31
|
imgPositionX?: number;
|
32
32
|
}): Promise<jsPDF>;
|
33
|
+
export declare function htmlToPdfUseCanvas({ pageClassName, dom, pdfName, isShowPage, noWater, pdfOptions, imgPositionX, isDownload, }: {
|
34
|
+
pageClassName?: string;
|
35
|
+
dom: HTMLElement;
|
36
|
+
pdfName: string;
|
37
|
+
isShowPage?: boolean;
|
38
|
+
noWater?: boolean;
|
39
|
+
pdfOptions?: any;
|
40
|
+
imgPositionX?: number;
|
41
|
+
isDownload?: boolean;
|
42
|
+
}): Promise<{
|
43
|
+
pdfs: any;
|
44
|
+
pdfBase64: any;
|
45
|
+
}>;
|
33
46
|
export interface IPdfOption {
|
34
47
|
/** 是否压缩 */
|
35
48
|
compress?: boolean;
|
package/dist/print.js
CHANGED
@@ -100,18 +100,23 @@ function addPdfWaterHandle(pdf, waterBase64) {
|
|
100
100
|
/**
|
101
101
|
* html转pdf
|
102
102
|
*/
|
103
|
-
function createPdf(canvas, pdf, noWater, positionX) {
|
103
|
+
function createPdf(canvas, pdf, noWater, positionX, options) {
|
104
104
|
var contentWidth = canvas.width;
|
105
105
|
var contentHeight = canvas.height;
|
106
|
+
var setWidth = (options === null || options === void 0 ? void 0 : options.width) || 592.28;
|
107
|
+
var setHeight = (options === null || options === void 0 ? void 0 : options.height) || 841.89;
|
106
108
|
// 一页pdf显示html页面生成的canvas高度
|
107
|
-
|
109
|
+
// const pageHeight = (contentWidth / 592.28) * 841.89;
|
110
|
+
var pageHeight = (contentWidth / setWidth) * setHeight;
|
108
111
|
// 未生成pdf的html页面高度
|
109
112
|
var leftHeight = contentHeight;
|
110
113
|
// 页面拍内衣
|
111
114
|
var position = 0;
|
112
115
|
//a4纸的尺寸[595.28,841.89],html页面生成的canvas在pdf中图片的宽高
|
113
|
-
|
114
|
-
|
116
|
+
// const imgWidth = 595.28;
|
117
|
+
// const imgHeight = (592.28 / contentWidth) * contentHeight;
|
118
|
+
var imgWidth = setWidth - (positionX || 20) - 10;
|
119
|
+
var imgHeight = (setWidth / contentWidth) * contentHeight;
|
115
120
|
var pageData = canvas.toDataURL('image/jpeg', 1.0);
|
116
121
|
//有两个高度需要区分,一个是html页面的实际高度,和生成pdf的页面高度(841.89)
|
117
122
|
//当内容未超过pdf一页显示的范围,无需分页
|
@@ -136,7 +141,8 @@ function createPdf(canvas, pdf, noWater, positionX) {
|
|
136
141
|
addPdfWaterHandle(pdf, waterBase64);
|
137
142
|
}
|
138
143
|
leftHeight -= pageHeight;
|
139
|
-
position -= 841.89;
|
144
|
+
// position -= 841.89;
|
145
|
+
position -= setHeight;
|
140
146
|
//避免添加空白页
|
141
147
|
if (leftHeight > 0) {
|
142
148
|
pdf.addPage();
|
@@ -147,7 +153,8 @@ function createPdf(canvas, pdf, noWater, positionX) {
|
|
147
153
|
function htmlToPdf(_a) {
|
148
154
|
var pageClassName = _a.pageClassName, dom = _a.dom, pdfName = _a.pdfName, isShowPage = _a.isShowPage, noWater = _a.noWater, pdfOptions = _a.pdfOptions, imgPositionX = _a.imgPositionX;
|
149
155
|
var allDom = document.querySelectorAll(pageClassName ? pageClassName : '.html2canvas-container-page');
|
150
|
-
var
|
156
|
+
var format = (pdfOptions === null || pdfOptions === void 0 ? void 0 : pdfOptions.format) || [632.28, 841.89];
|
157
|
+
var pdf = new jsPDF(__assign({ unit: 'pt', format: format }, (pdfOptions || {})));
|
151
158
|
if (allDom.length > 0 && isShowPage) {
|
152
159
|
var allDomArray = Array.prototype.slice.call(allDom);
|
153
160
|
var promiseAllDomArray_1 = allDomArray.map(function (dom) {
|
@@ -171,7 +178,10 @@ function htmlToPdf(_a) {
|
|
171
178
|
return [4 /*yield*/, item];
|
172
179
|
case 2:
|
173
180
|
canvas = _a.sent();
|
174
|
-
createPdf(canvas, pdf, noWater, imgPositionX
|
181
|
+
createPdf(canvas, pdf, noWater, imgPositionX, {
|
182
|
+
width: format === null || format === void 0 ? void 0 : format[0],
|
183
|
+
height: format === null || format === void 0 ? void 0 : format[1],
|
184
|
+
});
|
175
185
|
if (i < promiseAllDomArray_1.length) {
|
176
186
|
pdf.addPage();
|
177
187
|
}
|
@@ -189,17 +199,88 @@ function htmlToPdf(_a) {
|
|
189
199
|
}
|
190
200
|
else {
|
191
201
|
return html2canvas(dom, { scale: 2 }).then(function (canvas) {
|
192
|
-
createPdf(canvas, pdf, noWater, imgPositionX
|
202
|
+
createPdf(canvas, pdf, noWater, imgPositionX, {
|
203
|
+
width: format === null || format === void 0 ? void 0 : format[0],
|
204
|
+
height: format === null || format === void 0 ? void 0 : format[1],
|
205
|
+
});
|
193
206
|
pdf.save(pdfName + ".pdf");
|
194
207
|
return pdf;
|
195
208
|
});
|
196
209
|
}
|
197
210
|
}
|
211
|
+
function htmlToPdfUseCanvas(_a) {
|
212
|
+
var pageClassName = _a.pageClassName, dom = _a.dom, pdfName = _a.pdfName, isShowPage = _a.isShowPage, noWater = _a.noWater, pdfOptions = _a.pdfOptions, imgPositionX = _a.imgPositionX, isDownload = _a.isDownload;
|
213
|
+
var allDom = document.querySelectorAll(pageClassName ? pageClassName : '.html2canvas-container-page');
|
214
|
+
var format = (pdfOptions === null || pdfOptions === void 0 ? void 0 : pdfOptions.format) || [632.28, 841.89];
|
215
|
+
var _pdfOptions = __assign({ unit: 'pt', format: format }, (pdfOptions || {}));
|
216
|
+
if (allDom.length > 0 && isShowPage) {
|
217
|
+
var allDomArray = Array.prototype.slice.call(allDom);
|
218
|
+
var pdfBase64_1 = [];
|
219
|
+
var pdfs_1 = [];
|
220
|
+
var promiseAllDomArray_3 = allDomArray.map(function (dom) {
|
221
|
+
return html2canvas(dom, {
|
222
|
+
scale: 2,
|
223
|
+
});
|
224
|
+
});
|
225
|
+
return (function () {
|
226
|
+
return __awaiter(this, void 0, void 0, function () {
|
227
|
+
var _i, promiseAllDomArray_4, item, pdf, canvas;
|
228
|
+
return __generator(this, function (_a) {
|
229
|
+
switch (_a.label) {
|
230
|
+
case 0:
|
231
|
+
_i = 0, promiseAllDomArray_4 = promiseAllDomArray_3;
|
232
|
+
_a.label = 1;
|
233
|
+
case 1:
|
234
|
+
if (!(_i < promiseAllDomArray_4.length)) return [3 /*break*/, 4];
|
235
|
+
item = promiseAllDomArray_4[_i];
|
236
|
+
pdf = new jsPDF(_pdfOptions);
|
237
|
+
return [4 /*yield*/, item];
|
238
|
+
case 2:
|
239
|
+
canvas = _a.sent();
|
240
|
+
createPdf(canvas, pdf, noWater, imgPositionX, {
|
241
|
+
width: format === null || format === void 0 ? void 0 : format[0],
|
242
|
+
height: format === null || format === void 0 ? void 0 : format[1],
|
243
|
+
});
|
244
|
+
if (isDownload) {
|
245
|
+
pdf.save(pdfName + ".pdf");
|
246
|
+
}
|
247
|
+
pdfBase64_1.push(pdf.output('dataurlstring'));
|
248
|
+
pdfs_1.push(pdf);
|
249
|
+
_a.label = 3;
|
250
|
+
case 3:
|
251
|
+
_i++;
|
252
|
+
return [3 /*break*/, 1];
|
253
|
+
case 4: return [2 /*return*/, Promise.resolve({
|
254
|
+
pdfs: pdfs_1,
|
255
|
+
pdfBase64: pdfBase64_1,
|
256
|
+
})];
|
257
|
+
}
|
258
|
+
});
|
259
|
+
});
|
260
|
+
})();
|
261
|
+
}
|
262
|
+
else {
|
263
|
+
var pdf_1 = new jsPDF(_pdfOptions);
|
264
|
+
return html2canvas(dom, { scale: 2 }).then(function (canvas) {
|
265
|
+
createPdf(canvas, pdf_1, noWater, imgPositionX, {
|
266
|
+
width: format === null || format === void 0 ? void 0 : format[0],
|
267
|
+
height: format === null || format === void 0 ? void 0 : format[1],
|
268
|
+
});
|
269
|
+
if (isDownload) {
|
270
|
+
pdf_1.save(pdfName + ".pdf");
|
271
|
+
}
|
272
|
+
return {
|
273
|
+
pdfs: [pdf_1],
|
274
|
+
pdfBase64: [pdf_1.output('dataurlstring')],
|
275
|
+
};
|
276
|
+
});
|
277
|
+
}
|
278
|
+
}
|
198
279
|
function htmlToPdfNoCanvas(_a) {
|
199
280
|
var _b, _c;
|
200
281
|
var pageClassName = _a.pageClassName, dom = _a.dom, isShowPage = _a.isShowPage, fileBinary = _a.fileBinary, pdfName = _a.pdfName, isDownload = _a.isDownload, pdfOption = _a.pdfOption, isAddWater = _a.isAddWater, waterBase64 = _a.waterBase64, imgWidth = _a.imgWidth, imgHeight = _a.imgHeight, isCompress = _a.isCompress;
|
201
282
|
return __awaiter(this, void 0, void 0, function () {
|
202
|
-
var allDom, pageFormat, pageOrient, pageMarginX, pageMarginY, pdfOptions, allDomArray_1,
|
283
|
+
var allDom, pageFormat, pageOrient, pageMarginX, pageMarginY, pdfOptions, allDomArray_1, pdfBase64_2, pdfs_2, pdf_2, pageWidth_1;
|
203
284
|
return __generator(this, function (_d) {
|
204
285
|
allDom = dom.querySelectorAll(pageClassName ? pageClassName : '.html2canvas-container-page');
|
205
286
|
pageFormat = (pdfOption === null || pdfOption === void 0 ? void 0 : pdfOption.pageFormat) ? pdfOption.pageFormat : 'a4';
|
@@ -221,19 +302,21 @@ function htmlToPdfNoCanvas(_a) {
|
|
221
302
|
// 如果需要分页
|
222
303
|
if (allDom.length > 0 && isShowPage) {
|
223
304
|
allDomArray_1 = Array.prototype.slice.call(allDom);
|
224
|
-
|
225
|
-
|
305
|
+
pdfBase64_2 = [];
|
306
|
+
pdfs_2 = [];
|
226
307
|
return [2 /*return*/, (function () {
|
227
308
|
return __awaiter(this, void 0, void 0, function () {
|
228
|
-
var _loop_1, _i, allDomArray_2, item;
|
309
|
+
var i, _loop_1, _i, allDomArray_2, item;
|
229
310
|
return __generator(this, function (_a) {
|
230
311
|
switch (_a.label) {
|
231
312
|
case 0:
|
313
|
+
i = 0;
|
232
314
|
_loop_1 = function (item) {
|
233
315
|
var pdf, pageWidth;
|
234
316
|
return __generator(this, function (_b) {
|
235
317
|
switch (_b.label) {
|
236
318
|
case 0:
|
319
|
+
i++;
|
237
320
|
pdf = new jsPDF(pdfOptions);
|
238
321
|
pageWidth = pdf.internal.pageSize.width - pageMarginX * 2;
|
239
322
|
setPdfVersion(pdf);
|
@@ -246,7 +329,7 @@ function htmlToPdfNoCanvas(_a) {
|
|
246
329
|
windowWidth: pageWidth,
|
247
330
|
callback: function (res) {
|
248
331
|
// 添加呈现的HTML所需的页面(从第2页开始)
|
249
|
-
for (var
|
332
|
+
for (var i_1 = 2, j = res.internal.getNumberOfPages(); i_1 <= j; i_1++) {
|
250
333
|
pdf.addPage(pageFormat, pageOrient);
|
251
334
|
}
|
252
335
|
// 正确呈现文档
|
@@ -256,18 +339,18 @@ function htmlToPdfNoCanvas(_a) {
|
|
256
339
|
width: pageWidth,
|
257
340
|
windowWidth: pageWidth,
|
258
341
|
callback: function () {
|
259
|
-
for (var
|
260
|
-
pdf.setPage(
|
342
|
+
for (var i_2 = 1, j = res.internal.getNumberOfPages(); i_2 <= j; i_2++) {
|
343
|
+
pdf.setPage(i_2);
|
261
344
|
// 添加水印
|
262
345
|
if (isAddWater) {
|
263
346
|
setPdfWater(pdf, waterBase64, imgWidth, imgHeight);
|
264
347
|
}
|
265
348
|
}
|
266
349
|
if (isDownload) {
|
267
|
-
pdf.save(pdfName + ".pdf");
|
350
|
+
pdf.save(pdfName + "_" + i + ".pdf");
|
268
351
|
}
|
269
|
-
|
270
|
-
|
352
|
+
pdfBase64_2.push(pdf.output('dataurlstring'));
|
353
|
+
pdfs_2.push(pdf);
|
271
354
|
resolve({});
|
272
355
|
},
|
273
356
|
});
|
@@ -293,8 +376,8 @@ function htmlToPdfNoCanvas(_a) {
|
|
293
376
|
_i++;
|
294
377
|
return [3 /*break*/, 1];
|
295
378
|
case 4: return [2 /*return*/, Promise.resolve({
|
296
|
-
pdfs:
|
297
|
-
pdfBase64:
|
379
|
+
pdfs: pdfs_2,
|
380
|
+
pdfBase64: pdfBase64_2,
|
298
381
|
})];
|
299
382
|
}
|
300
383
|
});
|
@@ -302,10 +385,10 @@ function htmlToPdfNoCanvas(_a) {
|
|
302
385
|
})()];
|
303
386
|
}
|
304
387
|
else {
|
305
|
-
|
306
|
-
pageWidth_1 =
|
307
|
-
setPdfVersion(
|
308
|
-
supportJsPdfChinese(
|
388
|
+
pdf_2 = new jsPDF(pdfOptions);
|
389
|
+
pageWidth_1 = pdf_2.internal.pageSize.width - pageMarginX * 2;
|
390
|
+
setPdfVersion(pdf_2);
|
391
|
+
supportJsPdfChinese(pdf_2, fileBinary);
|
309
392
|
return [2 /*return*/, new Promise(function (resolve) {
|
310
393
|
new jsPDF(pdfOptions).html(dom, {
|
311
394
|
autoPaging: 'text',
|
@@ -315,28 +398,28 @@ function htmlToPdfNoCanvas(_a) {
|
|
315
398
|
callback: function (res) {
|
316
399
|
// 添加呈现的HTML所需的页面(从第2页开始)
|
317
400
|
for (var i = 2, j = res.internal.getNumberOfPages(); i <= j; i++) {
|
318
|
-
|
401
|
+
pdf_2.addPage(pageFormat, pageOrient);
|
319
402
|
}
|
320
403
|
// 正确呈现文档
|
321
|
-
|
404
|
+
pdf_2.html(dom, {
|
322
405
|
autoPaging: 'text',
|
323
406
|
margin: [pageMarginY, pageMarginX, pageMarginY, pageMarginX],
|
324
407
|
width: pageWidth_1,
|
325
408
|
windowWidth: pageWidth_1,
|
326
409
|
callback: function () {
|
327
410
|
for (var i = 1, j = res.internal.getNumberOfPages(); i <= j; i++) {
|
328
|
-
|
411
|
+
pdf_2.setPage(i);
|
329
412
|
// 添加水印
|
330
413
|
if (isAddWater) {
|
331
|
-
setPdfWater(
|
414
|
+
setPdfWater(pdf_2, waterBase64, imgWidth, imgHeight);
|
332
415
|
}
|
333
416
|
}
|
334
417
|
if (isDownload) {
|
335
|
-
|
418
|
+
pdf_2.save(pdfName + ".pdf");
|
336
419
|
}
|
337
420
|
resolve({
|
338
|
-
pdfs: [
|
339
|
-
pdfBase64: [
|
421
|
+
pdfs: [pdf_2],
|
422
|
+
pdfBase64: [pdf_2.output('dataurlstring')],
|
340
423
|
});
|
341
424
|
},
|
342
425
|
});
|
@@ -387,4 +470,4 @@ function setPdfWater(pdf, waterBase64, imgWidth, imgHeight) {
|
|
387
470
|
}
|
388
471
|
}
|
389
472
|
|
390
|
-
export { addWaterHandle, htmlToPdf, htmlToPdfNoCanvas, printCurrentDom, removeWaterHandle };
|
473
|
+
export { addWaterHandle, htmlToPdf, htmlToPdfNoCanvas, htmlToPdfUseCanvas, printCurrentDom, removeWaterHandle };
|