hsu-utils 0.0.19 → 0.0.22
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/LICENSE +21 -21
- package/README.md +32 -32
- package/dist/hsu-utils.js +2 -2
- package/dist/hsu-utils.min.js +1 -1
- package/dist/hsu-utils.min.js.LICENSE.txt +1 -1
- package/es/RenderPDF/index.d.ts +6 -1
- package/es/RenderPDF/index.js +41 -42
- package/lib/RenderPDF/index.d.ts +6 -1
- package/lib/RenderPDF/index.js +53 -48
- package/package.json +59 -59
package/es/RenderPDF/index.d.ts
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
import { PDFDocumentProxy } from 'pdfjs-dist/types/src/display/api';
|
1
2
|
interface RenderOption {
|
2
3
|
pdfUrl: string;
|
3
4
|
containerId: string;
|
@@ -6,10 +7,14 @@ interface RenderOption {
|
|
6
7
|
pixelRatio?: number;
|
7
8
|
scale?: number;
|
8
9
|
}
|
10
|
+
declare function load(pdfUrl: string): Promise<PDFDocumentProxy>;
|
9
11
|
declare function getNumPages(pdfUrl: string): Promise<number>;
|
12
|
+
declare function clear(containerId: string): void;
|
10
13
|
declare function render({ pdfUrl, containerId, startPageNum, endPageNum, pixelRatio, scale }: RenderOption): Promise<void>;
|
11
14
|
declare const RenderPDF: {
|
12
|
-
|
15
|
+
load: typeof load;
|
13
16
|
getNumPages: typeof getNumPages;
|
17
|
+
clear: typeof clear;
|
18
|
+
render: typeof render;
|
14
19
|
};
|
15
20
|
export default RenderPDF;
|
package/es/RenderPDF/index.js
CHANGED
@@ -10,36 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
10
10
|
import { GlobalWorkerOptions, getDocument } from 'pdfjs-dist/legacy/build/pdf.js';
|
11
11
|
GlobalWorkerOptions.workerSrc = 'https://cdn.bootcss.com/pdf.js/2.13.216/pdf.worker.js';
|
12
12
|
const PDFMap = new Map();
|
13
|
-
function
|
14
|
-
const container = document.getElementById(containerId);
|
15
|
-
const pages = document.querySelectorAll(`[id^="${containerId}-page-"]`);
|
16
|
-
pages === null || pages === void 0 ? void 0 : pages.forEach((item) => {
|
17
|
-
container === null || container === void 0 ? void 0 : container.removeChild(item);
|
18
|
-
});
|
19
|
-
}
|
20
|
-
function renderPage({ pdf, container, num, pixelRatio = 2, scale = 1 }) {
|
21
|
-
pdf.getPage(num).then((page) => {
|
22
|
-
const pageDiv = document.createElement('div');
|
23
|
-
pageDiv.setAttribute('id', `${container.id}-page-${num}`);
|
24
|
-
pageDiv.setAttribute('style', 'position: relative; ');
|
25
|
-
container.appendChild(pageDiv);
|
26
|
-
const canvas = document.createElement('canvas');
|
27
|
-
pageDiv.appendChild(canvas);
|
28
|
-
const ctx = canvas.getContext('2d');
|
29
|
-
const devicePixelRatio = window.devicePixelRatio * pixelRatio;
|
30
|
-
const viewport = page.getViewport({ scale: scale * devicePixelRatio });
|
31
|
-
canvas.style.width = '100%';
|
32
|
-
canvas.style.height = '100%';
|
33
|
-
canvas.width = viewport.width;
|
34
|
-
canvas.height = viewport.height;
|
35
|
-
const renderContext = {
|
36
|
-
canvasContext: ctx,
|
37
|
-
viewport: viewport
|
38
|
-
};
|
39
|
-
page.render(renderContext);
|
40
|
-
});
|
41
|
-
}
|
42
|
-
function getNumPages(pdfUrl) {
|
13
|
+
function load(pdfUrl) {
|
43
14
|
return __awaiter(this, void 0, void 0, function* () {
|
44
15
|
let pdf = PDFMap.get(pdfUrl);
|
45
16
|
if (!pdf) {
|
@@ -51,25 +22,29 @@ function getNumPages(pdfUrl) {
|
|
51
22
|
pdf = yield loadingTask.promise;
|
52
23
|
PDFMap.set(pdfUrl, pdf);
|
53
24
|
}
|
25
|
+
return pdf;
|
26
|
+
});
|
27
|
+
}
|
28
|
+
function getNumPages(pdfUrl) {
|
29
|
+
return __awaiter(this, void 0, void 0, function* () {
|
30
|
+
const pdf = yield load(pdfUrl);
|
54
31
|
return pdf.numPages;
|
55
32
|
});
|
56
33
|
}
|
34
|
+
function clear(containerId) {
|
35
|
+
const container = document.getElementById(containerId);
|
36
|
+
const pages = document.querySelectorAll(`[id^="${containerId}-page-"]`);
|
37
|
+
pages === null || pages === void 0 ? void 0 : pages.forEach((item) => {
|
38
|
+
container === null || container === void 0 ? void 0 : container.removeChild(item);
|
39
|
+
});
|
40
|
+
}
|
57
41
|
function render({ pdfUrl, containerId, startPageNum, endPageNum, pixelRatio, scale }) {
|
58
42
|
return __awaiter(this, void 0, void 0, function* () {
|
59
43
|
clear(containerId);
|
60
|
-
let pdf = PDFMap.get(pdfUrl);
|
61
|
-
if (!pdf) {
|
62
|
-
const loadingTask = getDocument({
|
63
|
-
url: pdfUrl,
|
64
|
-
cMapUrl: 'https://unpkg.com/browse/pdfjs-dist@2.13.216/cmaps/',
|
65
|
-
cMapPacked: true
|
66
|
-
});
|
67
|
-
pdf = yield loadingTask.promise;
|
68
|
-
PDFMap.set(pdfUrl, pdf);
|
69
|
-
}
|
70
44
|
const container = document.getElementById(containerId);
|
71
45
|
if (!container)
|
72
46
|
return;
|
47
|
+
const pdf = yield load(pdfUrl);
|
73
48
|
const start = startPageNum !== null && startPageNum !== void 0 ? startPageNum : 1;
|
74
49
|
const end = endPageNum !== null && endPageNum !== void 0 ? endPageNum : pdf.numPages;
|
75
50
|
for (let i = start; i <= end; i++) {
|
@@ -77,8 +52,32 @@ function render({ pdfUrl, containerId, startPageNum, endPageNum, pixelRatio, sca
|
|
77
52
|
}
|
78
53
|
});
|
79
54
|
}
|
55
|
+
function renderPage({ pdf, container, num, pixelRatio = 2, scale = 1 }) {
|
56
|
+
pdf.getPage(num).then((page) => {
|
57
|
+
const pageDiv = document.createElement('div');
|
58
|
+
pageDiv.setAttribute('id', `${container.id}-page-${num}`);
|
59
|
+
pageDiv.setAttribute('style', 'position: relative; ');
|
60
|
+
container.appendChild(pageDiv);
|
61
|
+
const canvas = document.createElement('canvas');
|
62
|
+
pageDiv.appendChild(canvas);
|
63
|
+
const ctx = canvas.getContext('2d');
|
64
|
+
const devicePixelRatio = window.devicePixelRatio * pixelRatio;
|
65
|
+
const viewport = page.getViewport({ scale: 1 * devicePixelRatio });
|
66
|
+
canvas.style.width = `calc(100% * ${scale})`;
|
67
|
+
canvas.style.height = '100%';
|
68
|
+
canvas.width = viewport.width;
|
69
|
+
canvas.height = viewport.height;
|
70
|
+
const renderContext = {
|
71
|
+
canvasContext: ctx,
|
72
|
+
viewport: viewport
|
73
|
+
};
|
74
|
+
page.render(renderContext);
|
75
|
+
});
|
76
|
+
}
|
80
77
|
const RenderPDF = {
|
81
|
-
|
82
|
-
getNumPages
|
78
|
+
load,
|
79
|
+
getNumPages,
|
80
|
+
clear,
|
81
|
+
render
|
83
82
|
};
|
84
83
|
export default RenderPDF;
|
package/lib/RenderPDF/index.d.ts
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
import { PDFDocumentProxy } from 'pdfjs-dist/types/src/display/api';
|
1
2
|
interface RenderOption {
|
2
3
|
pdfUrl: string;
|
3
4
|
containerId: string;
|
@@ -6,10 +7,14 @@ interface RenderOption {
|
|
6
7
|
pixelRatio?: number;
|
7
8
|
scale?: number;
|
8
9
|
}
|
10
|
+
declare function load(pdfUrl: string): Promise<PDFDocumentProxy>;
|
9
11
|
declare function getNumPages(pdfUrl: string): Promise<number>;
|
12
|
+
declare function clear(containerId: string): void;
|
10
13
|
declare function render({ pdfUrl, containerId, startPageNum, endPageNum, pixelRatio, scale }: RenderOption): Promise<void>;
|
11
14
|
declare const RenderPDF: {
|
12
|
-
|
15
|
+
load: typeof load;
|
13
16
|
getNumPages: typeof getNumPages;
|
17
|
+
clear: typeof clear;
|
18
|
+
render: typeof render;
|
14
19
|
};
|
15
20
|
export default RenderPDF;
|
package/lib/RenderPDF/index.js
CHANGED
@@ -39,37 +39,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
var pdf_js_1 = require("pdfjs-dist/legacy/build/pdf.js");
|
40
40
|
pdf_js_1.GlobalWorkerOptions.workerSrc = 'https://cdn.bootcss.com/pdf.js/2.13.216/pdf.worker.js';
|
41
41
|
var PDFMap = new Map();
|
42
|
-
function
|
43
|
-
var container = document.getElementById(containerId);
|
44
|
-
var pages = document.querySelectorAll("[id^=\"".concat(containerId, "-page-\"]"));
|
45
|
-
pages === null || pages === void 0 ? void 0 : pages.forEach(function (item) {
|
46
|
-
container === null || container === void 0 ? void 0 : container.removeChild(item);
|
47
|
-
});
|
48
|
-
}
|
49
|
-
function renderPage(_a) {
|
50
|
-
var pdf = _a.pdf, container = _a.container, num = _a.num, _b = _a.pixelRatio, pixelRatio = _b === void 0 ? 2 : _b, _c = _a.scale, scale = _c === void 0 ? 1 : _c;
|
51
|
-
pdf.getPage(num).then(function (page) {
|
52
|
-
var pageDiv = document.createElement('div');
|
53
|
-
pageDiv.setAttribute('id', "".concat(container.id, "-page-").concat(num));
|
54
|
-
pageDiv.setAttribute('style', 'position: relative; ');
|
55
|
-
container.appendChild(pageDiv);
|
56
|
-
var canvas = document.createElement('canvas');
|
57
|
-
pageDiv.appendChild(canvas);
|
58
|
-
var ctx = canvas.getContext('2d');
|
59
|
-
var devicePixelRatio = window.devicePixelRatio * pixelRatio;
|
60
|
-
var viewport = page.getViewport({ scale: scale * devicePixelRatio });
|
61
|
-
canvas.style.width = '100%';
|
62
|
-
canvas.style.height = '100%';
|
63
|
-
canvas.width = viewport.width;
|
64
|
-
canvas.height = viewport.height;
|
65
|
-
var renderContext = {
|
66
|
-
canvasContext: ctx,
|
67
|
-
viewport: viewport
|
68
|
-
};
|
69
|
-
page.render(renderContext);
|
70
|
-
});
|
71
|
-
}
|
72
|
-
function getNumPages(pdfUrl) {
|
42
|
+
function load(pdfUrl) {
|
73
43
|
return __awaiter(this, void 0, void 0, function () {
|
74
44
|
var pdf, loadingTask;
|
75
45
|
return __generator(this, function (_a) {
|
@@ -87,35 +57,45 @@ function getNumPages(pdfUrl) {
|
|
87
57
|
pdf = _a.sent();
|
88
58
|
PDFMap.set(pdfUrl, pdf);
|
89
59
|
_a.label = 2;
|
90
|
-
case 2: return [2, pdf
|
60
|
+
case 2: return [2, pdf];
|
61
|
+
}
|
62
|
+
});
|
63
|
+
});
|
64
|
+
}
|
65
|
+
function getNumPages(pdfUrl) {
|
66
|
+
return __awaiter(this, void 0, void 0, function () {
|
67
|
+
var pdf;
|
68
|
+
return __generator(this, function (_a) {
|
69
|
+
switch (_a.label) {
|
70
|
+
case 0: return [4, load(pdfUrl)];
|
71
|
+
case 1:
|
72
|
+
pdf = _a.sent();
|
73
|
+
return [2, pdf.numPages];
|
91
74
|
}
|
92
75
|
});
|
93
76
|
});
|
94
77
|
}
|
78
|
+
function clear(containerId) {
|
79
|
+
var container = document.getElementById(containerId);
|
80
|
+
var pages = document.querySelectorAll("[id^=\"".concat(containerId, "-page-\"]"));
|
81
|
+
pages === null || pages === void 0 ? void 0 : pages.forEach(function (item) {
|
82
|
+
container === null || container === void 0 ? void 0 : container.removeChild(item);
|
83
|
+
});
|
84
|
+
}
|
95
85
|
function render(_a) {
|
96
86
|
var pdfUrl = _a.pdfUrl, containerId = _a.containerId, startPageNum = _a.startPageNum, endPageNum = _a.endPageNum, pixelRatio = _a.pixelRatio, scale = _a.scale;
|
97
87
|
return __awaiter(this, void 0, void 0, function () {
|
98
|
-
var
|
88
|
+
var container, pdf, start, end, i;
|
99
89
|
return __generator(this, function (_b) {
|
100
90
|
switch (_b.label) {
|
101
91
|
case 0:
|
102
92
|
clear(containerId);
|
103
|
-
pdf = PDFMap.get(pdfUrl);
|
104
|
-
if (!!pdf) return [3, 2];
|
105
|
-
loadingTask = (0, pdf_js_1.getDocument)({
|
106
|
-
url: pdfUrl,
|
107
|
-
cMapUrl: 'https://unpkg.com/browse/pdfjs-dist@2.13.216/cmaps/',
|
108
|
-
cMapPacked: true
|
109
|
-
});
|
110
|
-
return [4, loadingTask.promise];
|
111
|
-
case 1:
|
112
|
-
pdf = _b.sent();
|
113
|
-
PDFMap.set(pdfUrl, pdf);
|
114
|
-
_b.label = 2;
|
115
|
-
case 2:
|
116
93
|
container = document.getElementById(containerId);
|
117
94
|
if (!container)
|
118
95
|
return [2];
|
96
|
+
return [4, load(pdfUrl)];
|
97
|
+
case 1:
|
98
|
+
pdf = _b.sent();
|
119
99
|
start = startPageNum !== null && startPageNum !== void 0 ? startPageNum : 1;
|
120
100
|
end = endPageNum !== null && endPageNum !== void 0 ? endPageNum : pdf.numPages;
|
121
101
|
for (i = start; i <= end; i++) {
|
@@ -126,8 +106,33 @@ function render(_a) {
|
|
126
106
|
});
|
127
107
|
});
|
128
108
|
}
|
109
|
+
function renderPage(_a) {
|
110
|
+
var pdf = _a.pdf, container = _a.container, num = _a.num, _b = _a.pixelRatio, pixelRatio = _b === void 0 ? 2 : _b, _c = _a.scale, scale = _c === void 0 ? 1 : _c;
|
111
|
+
pdf.getPage(num).then(function (page) {
|
112
|
+
var pageDiv = document.createElement('div');
|
113
|
+
pageDiv.setAttribute('id', "".concat(container.id, "-page-").concat(num));
|
114
|
+
pageDiv.setAttribute('style', 'position: relative; ');
|
115
|
+
container.appendChild(pageDiv);
|
116
|
+
var canvas = document.createElement('canvas');
|
117
|
+
pageDiv.appendChild(canvas);
|
118
|
+
var ctx = canvas.getContext('2d');
|
119
|
+
var devicePixelRatio = window.devicePixelRatio * pixelRatio;
|
120
|
+
var viewport = page.getViewport({ scale: 1 * devicePixelRatio });
|
121
|
+
canvas.style.width = "calc(100% * ".concat(scale, ")");
|
122
|
+
canvas.style.height = '100%';
|
123
|
+
canvas.width = viewport.width;
|
124
|
+
canvas.height = viewport.height;
|
125
|
+
var renderContext = {
|
126
|
+
canvasContext: ctx,
|
127
|
+
viewport: viewport
|
128
|
+
};
|
129
|
+
page.render(renderContext);
|
130
|
+
});
|
131
|
+
}
|
129
132
|
var RenderPDF = {
|
130
|
-
|
131
|
-
getNumPages: getNumPages
|
133
|
+
load: load,
|
134
|
+
getNumPages: getNumPages,
|
135
|
+
clear: clear,
|
136
|
+
render: render
|
132
137
|
};
|
133
138
|
exports.default = RenderPDF;
|
package/package.json
CHANGED
@@ -1,59 +1,59 @@
|
|
1
|
-
{
|
2
|
-
"name": "hsu-utils",
|
3
|
-
"version": "0.0.
|
4
|
-
"description": "some front-end utils",
|
5
|
-
"repository": "git@github.com:VitaTsui/hsu-utils.git",
|
6
|
-
"author": "VitaHsu <vitahsu7@gmail.com>",
|
7
|
-
"license": "MIT",
|
8
|
-
"main": "lib/index.js",
|
9
|
-
"module": "es/index.js",
|
10
|
-
"unpkg": "dist/hsu-utils.min.js",
|
11
|
-
"files": [
|
12
|
-
"es",
|
13
|
-
"lib",
|
14
|
-
"dist",
|
15
|
-
"package.json",
|
16
|
-
"README.md",
|
17
|
-
"LICENSE"
|
18
|
-
],
|
19
|
-
"sideEffects": [
|
20
|
-
"es/*",
|
21
|
-
"lib/*",
|
22
|
-
"dist/*"
|
23
|
-
],
|
24
|
-
"scripts": {
|
25
|
-
"build": "yarn build:es && yarn build:cjs && rimraf dist && yarn build:umd",
|
26
|
-
"build:es": "rimraf es && tsc -p build/tsconfig.es.json",
|
27
|
-
"build:cjs": "rimraf lib && tsc -p build/tsconfig.cjs.json",
|
28
|
-
"build:umd": "rimraf dist && yarn build:dev && yarn build:prod",
|
29
|
-
"build:dev": "cross-env NODE_ENV=development webpack --config build/webpack.config.js",
|
30
|
-
"build:prod": "cross-env NODE_ENV=production webpack --config build/webpack.config.js",
|
31
|
-
"clear": "rimraf lib && rimraf es && rimraf dist",
|
32
|
-
"test": "jest",
|
33
|
-
"publish:patch": "yarn build && yarn publish --new-version patch",
|
34
|
-
"publish:minor": "yarn build && yarn publish --new-version minor",
|
35
|
-
"publish:major": "yarn build && yarn publish --new-version major",
|
36
|
-
"publish:alpha": "yarn build && yarn publish --tag alpha"
|
37
|
-
},
|
38
|
-
"devDependencies": {
|
39
|
-
"@jest/globals": "^29.5.0",
|
40
|
-
"@testing-library/react-hooks": "^8.0.1",
|
41
|
-
"@types/jest": "^29.5.2",
|
42
|
-
"cross-env": "^7.0.3",
|
43
|
-
"jest": "^29.5.0",
|
44
|
-
"jest-canvas-mock": "^2.5.2",
|
45
|
-
"jest-environment-jsdom": "^29.5.0",
|
46
|
-
"jsdom": "^22.1.0",
|
47
|
-
"rimraf": "^5.0.1",
|
48
|
-
"terser-webpack-plugin": "^5.3.0",
|
49
|
-
"ts-jest": "^29.1.0",
|
50
|
-
"ts-loader": "^9.2.6",
|
51
|
-
"ts-node": "^10.9.1",
|
52
|
-
"typescript": "^5.1.3",
|
53
|
-
"webpack": "^5.65.0",
|
54
|
-
"webpack-cli": "^4.9.1"
|
55
|
-
},
|
56
|
-
"dependencies": {
|
57
|
-
"pdfjs-dist": "2.13.216"
|
58
|
-
}
|
59
|
-
}
|
1
|
+
{
|
2
|
+
"name": "hsu-utils",
|
3
|
+
"version": "0.0.22",
|
4
|
+
"description": "some front-end utils",
|
5
|
+
"repository": "git@github.com:VitaTsui/hsu-utils.git",
|
6
|
+
"author": "VitaHsu <vitahsu7@gmail.com>",
|
7
|
+
"license": "MIT",
|
8
|
+
"main": "lib/index.js",
|
9
|
+
"module": "es/index.js",
|
10
|
+
"unpkg": "dist/hsu-utils.min.js",
|
11
|
+
"files": [
|
12
|
+
"es",
|
13
|
+
"lib",
|
14
|
+
"dist",
|
15
|
+
"package.json",
|
16
|
+
"README.md",
|
17
|
+
"LICENSE"
|
18
|
+
],
|
19
|
+
"sideEffects": [
|
20
|
+
"es/*",
|
21
|
+
"lib/*",
|
22
|
+
"dist/*"
|
23
|
+
],
|
24
|
+
"scripts": {
|
25
|
+
"build": "yarn build:es && yarn build:cjs && rimraf dist && yarn build:umd",
|
26
|
+
"build:es": "rimraf es && tsc -p build/tsconfig.es.json",
|
27
|
+
"build:cjs": "rimraf lib && tsc -p build/tsconfig.cjs.json",
|
28
|
+
"build:umd": "rimraf dist && yarn build:dev && yarn build:prod",
|
29
|
+
"build:dev": "cross-env NODE_ENV=development webpack --config build/webpack.config.js",
|
30
|
+
"build:prod": "cross-env NODE_ENV=production webpack --config build/webpack.config.js",
|
31
|
+
"clear": "rimraf lib && rimraf es && rimraf dist",
|
32
|
+
"test": "jest",
|
33
|
+
"publish:patch": "yarn build && yarn publish --new-version patch",
|
34
|
+
"publish:minor": "yarn build && yarn publish --new-version minor",
|
35
|
+
"publish:major": "yarn build && yarn publish --new-version major",
|
36
|
+
"publish:alpha": "yarn build && yarn publish --tag alpha"
|
37
|
+
},
|
38
|
+
"devDependencies": {
|
39
|
+
"@jest/globals": "^29.5.0",
|
40
|
+
"@testing-library/react-hooks": "^8.0.1",
|
41
|
+
"@types/jest": "^29.5.2",
|
42
|
+
"cross-env": "^7.0.3",
|
43
|
+
"jest": "^29.5.0",
|
44
|
+
"jest-canvas-mock": "^2.5.2",
|
45
|
+
"jest-environment-jsdom": "^29.5.0",
|
46
|
+
"jsdom": "^22.1.0",
|
47
|
+
"rimraf": "^5.0.1",
|
48
|
+
"terser-webpack-plugin": "^5.3.0",
|
49
|
+
"ts-jest": "^29.1.0",
|
50
|
+
"ts-loader": "^9.2.6",
|
51
|
+
"ts-node": "^10.9.1",
|
52
|
+
"typescript": "^5.1.3",
|
53
|
+
"webpack": "^5.65.0",
|
54
|
+
"webpack-cli": "^4.9.1"
|
55
|
+
},
|
56
|
+
"dependencies": {
|
57
|
+
"pdfjs-dist": "2.13.216"
|
58
|
+
}
|
59
|
+
}
|