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 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
- var pageHeight = (contentWidth / 592.28) * 841.89;
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
- var imgWidth = 595.28;
114
- var imgHeight = (592.28 / contentWidth) * contentHeight;
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 pdf = new jsPDF(__assign({ unit: 'pt', format: [632.28, 841.89] }, (pdfOptions || {})));
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, pdfBase64_1, pdfs_1, pdf_1, pageWidth_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
- pdfBase64_1 = [];
225
- pdfs_1 = [];
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 i = 2, j = res.internal.getNumberOfPages(); i <= j; i++) {
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 i = 1, j = res.internal.getNumberOfPages(); i <= j; i++) {
260
- pdf.setPage(i);
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
- pdfBase64_1.push(pdf.output('dataurlstring'));
270
- pdfs_1.push(pdf);
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: pdfs_1,
297
- pdfBase64: pdfBase64_1,
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
- pdf_1 = new jsPDF(pdfOptions);
306
- pageWidth_1 = pdf_1.internal.pageSize.width - pageMarginX * 2;
307
- setPdfVersion(pdf_1);
308
- supportJsPdfChinese(pdf_1, fileBinary);
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
- pdf_1.addPage(pageFormat, pageOrient);
401
+ pdf_2.addPage(pageFormat, pageOrient);
319
402
  }
320
403
  // 正确呈现文档
321
- pdf_1.html(dom, {
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
- pdf_1.setPage(i);
411
+ pdf_2.setPage(i);
329
412
  // 添加水印
330
413
  if (isAddWater) {
331
- setPdfWater(pdf_1, waterBase64, imgWidth, imgHeight);
414
+ setPdfWater(pdf_2, waterBase64, imgWidth, imgHeight);
332
415
  }
333
416
  }
334
417
  if (isDownload) {
335
- pdf_1.save(pdfName + ".pdf");
418
+ pdf_2.save(pdfName + ".pdf");
336
419
  }
337
420
  resolve({
338
- pdfs: [pdf_1],
339
- pdfBase64: [pdf_1.output('dataurlstring')],
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 };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ztxkutils",
3
- "version": "2.10.16",
3
+ "version": "2.10.18",
4
4
  "description": "",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",