ztxkutils 2.5.9 → 2.6.2
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 +9 -8
- package/dist/print.js +97 -41
- package/package.json +1 -1
package/dist/print.d.ts
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
/**
|
2
2
|
* 添加水印
|
3
3
|
*/
|
4
|
-
export declare function addWaterHandle({ waterText, waterClassName }?: {
|
5
|
-
waterText
|
6
|
-
waterClassName
|
4
|
+
export declare function addWaterHandle({ waterText, waterClassName, isPrintWater, }?: {
|
5
|
+
waterText?: string;
|
6
|
+
waterClassName?: string[];
|
7
|
+
isPrintWater?: boolean;
|
7
8
|
}): void;
|
9
|
+
export declare function removeWaterHandle(): void;
|
8
10
|
/**
|
9
11
|
* 打印页面
|
10
12
|
* hiddenClassNames 需要隐藏的样式 默认有hiddenPrint
|
@@ -14,11 +16,10 @@ interface IParams {
|
|
14
16
|
hiddenClassNames?: string[];
|
15
17
|
}
|
16
18
|
export declare function printCurrentDom({ hiddenClassNames }?: IParams): void;
|
17
|
-
|
18
|
-
|
19
|
-
*/
|
20
|
-
export declare function htmlToPdf({ dom, pdfName, }: {
|
19
|
+
export declare function htmlToPdf({ pageClassName, dom, pdfName, isShowPage, }: {
|
20
|
+
pageClassName?: string;
|
21
21
|
dom: HTMLElement;
|
22
22
|
pdfName: string;
|
23
|
-
|
23
|
+
isShowPage?: boolean;
|
24
|
+
}): Promise<void>;
|
24
25
|
export {};
|
package/dist/print.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { a as __spreadArray } from './tslib.es6-f9459658.js';
|
1
|
+
import { a as __spreadArray, c as __awaiter, d as __generator } from './tslib.es6-f9459658.js';
|
2
2
|
import { jsPDF } from 'jspdf';
|
3
3
|
import html2canvas from 'html2canvas';
|
4
4
|
|
@@ -8,8 +8,9 @@ import html2canvas from 'html2canvas';
|
|
8
8
|
function addWaterHandle(_a) {
|
9
9
|
var _b = _a === void 0 ? {
|
10
10
|
waterText: '',
|
11
|
-
waterClassName:
|
12
|
-
|
11
|
+
waterClassName: [],
|
12
|
+
isPrintWater: true,
|
13
|
+
} : _a, waterText = _b.waterText, waterClassName = _b.waterClassName, isPrintWater = _b.isPrintWater;
|
13
14
|
var canvas = document.createElement('canvas');
|
14
15
|
var waterStyleDom = document.getElementById('water-style-dom-110011');
|
15
16
|
if (waterStyleDom) {
|
@@ -29,14 +30,28 @@ function addWaterHandle(_a) {
|
|
29
30
|
var styleDom = document.createElement('style');
|
30
31
|
styleDom.setAttribute('type', 'text/css');
|
31
32
|
styleDom.setAttribute('id', 'water-style-dom-110011');
|
32
|
-
styleDom.innerText =
|
33
|
-
'@media print{' +
|
34
|
-
(waterClassName
|
33
|
+
styleDom.innerText = isPrintWater
|
34
|
+
? '@media print{' +
|
35
|
+
(Array.isArray(waterClassName) && waterClassName.length > 0
|
36
|
+
? "" + waterClassName.join(',')
|
37
|
+
: 'body') +
|
35
38
|
' {background: url(' +
|
36
39
|
canvas.toDataURL('image/png') +
|
37
|
-
') left top repeat;}}'
|
40
|
+
') left top repeat;}}'
|
41
|
+
: (Array.isArray(waterClassName) && waterClassName.length > 0
|
42
|
+
? "" + waterClassName.join(',')
|
43
|
+
: 'body') +
|
44
|
+
' {background: url(' +
|
45
|
+
canvas.toDataURL('image/png') +
|
46
|
+
') left top repeat;}';
|
38
47
|
document.head.appendChild(styleDom);
|
39
48
|
}
|
49
|
+
function removeWaterHandle() {
|
50
|
+
var waterStyleDom = document.getElementById('water-style-dom-110011');
|
51
|
+
if (waterStyleDom) {
|
52
|
+
waterStyleDom.remove();
|
53
|
+
}
|
54
|
+
}
|
40
55
|
function printCurrentDom(_a) {
|
41
56
|
var _b = _a === void 0 ? { hiddenClassNames: [] } : _a, hiddenClassNames = _b.hiddenClassNames;
|
42
57
|
var printStyleDom = document.getElementById('print-style-dom-110011');
|
@@ -46,7 +61,7 @@ function printCurrentDom(_a) {
|
|
46
61
|
var styleDom = document.createElement('style');
|
47
62
|
styleDom.setAttribute('type', 'text/css');
|
48
63
|
styleDom.setAttribute('id', 'print-style-dom-110011');
|
49
|
-
styleDom.innerText = "@media print{ " + __spreadArray(__spreadArray([], hiddenClassNames), [
|
64
|
+
styleDom.innerText = "@media print{ " + __spreadArray(__spreadArray([], (hiddenClassNames || [])), [
|
50
65
|
'.hiddenPrint',
|
51
66
|
'.hidden-print-footer',
|
52
67
|
]).join(',') + " { display: none; } }";
|
@@ -56,40 +71,81 @@ function printCurrentDom(_a) {
|
|
56
71
|
/**
|
57
72
|
* html转pdf
|
58
73
|
*/
|
59
|
-
function
|
60
|
-
var
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
//避免添加空白页
|
86
|
-
if (leftHeight > 0) {
|
87
|
-
pdf.addPage();
|
88
|
-
}
|
74
|
+
function createPdf(canvas, pdf) {
|
75
|
+
var contentWidth = canvas.width;
|
76
|
+
var contentHeight = canvas.height;
|
77
|
+
// 一页pdf显示html页面生成的canvas高度
|
78
|
+
var pageHeight = (contentWidth / 592.28) * 841.89;
|
79
|
+
// 未生成pdf的html页面高度
|
80
|
+
var leftHeight = contentHeight;
|
81
|
+
// 页面拍内衣
|
82
|
+
var position = 0;
|
83
|
+
//a4纸的尺寸[595.28,841.89],html页面生成的canvas在pdf中图片的宽高
|
84
|
+
var imgWidth = 595.28;
|
85
|
+
var imgHeight = (592.28 / contentWidth) * contentHeight;
|
86
|
+
var pageData = canvas.toDataURL('image/jpeg', 1.0);
|
87
|
+
//有两个高度需要区分,一个是html页面的实际高度,和生成pdf的页面高度(841.89)
|
88
|
+
//当内容未超过pdf一页显示的范围,无需分页
|
89
|
+
if (leftHeight < pageHeight) {
|
90
|
+
pdf.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight);
|
91
|
+
}
|
92
|
+
else {
|
93
|
+
while (leftHeight > 0) {
|
94
|
+
pdf.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight);
|
95
|
+
leftHeight -= pageHeight;
|
96
|
+
position -= 841.89;
|
97
|
+
//避免添加空白页
|
98
|
+
if (leftHeight > 0) {
|
99
|
+
pdf.addPage();
|
89
100
|
}
|
90
101
|
}
|
91
|
-
|
92
|
-
|
102
|
+
}
|
103
|
+
}
|
104
|
+
function htmlToPdf(_a) {
|
105
|
+
var pageClassName = _a.pageClassName, dom = _a.dom, pdfName = _a.pdfName, isShowPage = _a.isShowPage;
|
106
|
+
var pdf = new jsPDF(undefined, 'pt', 'a4');
|
107
|
+
var allDom = document.querySelectorAll(pageClassName ? pageClassName : '.html2canvas-container-page');
|
108
|
+
if (allDom.length > 0 && isShowPage) {
|
109
|
+
var allDomArray = Array.prototype.slice.call(allDom);
|
110
|
+
var promiseAllDomArray_1 = allDomArray.map(function (dom) { return html2canvas(dom); });
|
111
|
+
return (function () {
|
112
|
+
return __awaiter(this, void 0, void 0, function () {
|
113
|
+
var i, _i, promiseAllDomArray_2, item, canvas;
|
114
|
+
return __generator(this, function (_a) {
|
115
|
+
switch (_a.label) {
|
116
|
+
case 0:
|
117
|
+
i = 0;
|
118
|
+
_i = 0, promiseAllDomArray_2 = promiseAllDomArray_1;
|
119
|
+
_a.label = 1;
|
120
|
+
case 1:
|
121
|
+
if (!(_i < promiseAllDomArray_2.length)) return [3 /*break*/, 4];
|
122
|
+
item = promiseAllDomArray_2[_i];
|
123
|
+
i++;
|
124
|
+
return [4 /*yield*/, item];
|
125
|
+
case 2:
|
126
|
+
canvas = _a.sent();
|
127
|
+
createPdf(canvas, pdf);
|
128
|
+
if (i < promiseAllDomArray_1.length) {
|
129
|
+
pdf.addPage();
|
130
|
+
}
|
131
|
+
_a.label = 3;
|
132
|
+
case 3:
|
133
|
+
_i++;
|
134
|
+
return [3 /*break*/, 1];
|
135
|
+
case 4:
|
136
|
+
pdf.save(pdfName + ".pdf");
|
137
|
+
return [2 /*return*/, Promise.resolve()];
|
138
|
+
}
|
139
|
+
});
|
140
|
+
});
|
141
|
+
})();
|
142
|
+
}
|
143
|
+
else {
|
144
|
+
return html2canvas(dom).then(function (canvas) {
|
145
|
+
createPdf(canvas, pdf);
|
146
|
+
pdf.save(pdfName + ".pdf");
|
147
|
+
});
|
148
|
+
}
|
93
149
|
}
|
94
150
|
|
95
|
-
export { addWaterHandle, htmlToPdf, printCurrentDom };
|
151
|
+
export { addWaterHandle, htmlToPdf, printCurrentDom, removeWaterHandle };
|