diff --git a/.gitignore b/.gitignore
index 30bc162..b512c09 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-/node_modules
\ No newline at end of file
+node_modules
\ No newline at end of file
diff --git a/src/js/print/assets/test.pdf b/src/js/print/assets/test.pdf
new file mode 100644
index 0000000..59f5185
Binary files /dev/null and b/src/js/print/assets/test.pdf differ
diff --git a/src/js/print/index.html b/src/js/print/index.html
new file mode 100644
index 0000000..73a7dd7
--- /dev/null
+++ b/src/js/print/index.html
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+ Document
+
+
+ 打印
+
+
+
+
+
diff --git a/src/js/print/package-lock.json b/src/js/print/package-lock.json
new file mode 100644
index 0000000..0cb67a8
--- /dev/null
+++ b/src/js/print/package-lock.json
@@ -0,0 +1,59 @@
+{
+ "name": "printjs",
+ "version": "1.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "printjs",
+ "version": "1.0.0",
+ "license": "ISC",
+ "dependencies": {
+ "pdf-lib": "^1.17.1",
+ "print-js": "^1.6.0"
+ }
+ },
+ "node_modules/@pdf-lib/standard-fonts": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/@pdf-lib/standard-fonts/-/standard-fonts-1.0.0.tgz",
+ "integrity": "sha512-hU30BK9IUN/su0Mn9VdlVKsWBS6GyhVfqjwl1FjZN4TxP6cCw0jP2w7V3Hf5uX7M0AZJ16vey9yE0ny7Sa59ZA==",
+ "dependencies": {
+ "pako": "^1.0.6"
+ }
+ },
+ "node_modules/@pdf-lib/upng": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/@pdf-lib/upng/-/upng-1.0.1.tgz",
+ "integrity": "sha512-dQK2FUMQtowVP00mtIksrlZhdFXQZPC+taih1q4CvPZ5vqdxR/LKBaFg0oAfzd1GlHZXXSPdQfzQnt+ViGvEIQ==",
+ "dependencies": {
+ "pako": "^1.0.10"
+ }
+ },
+ "node_modules/pako": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz",
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
+ },
+ "node_modules/pdf-lib": {
+ "version": "1.17.1",
+ "resolved": "https://registry.npmmirror.com/pdf-lib/-/pdf-lib-1.17.1.tgz",
+ "integrity": "sha512-V/mpyJAoTsN4cnP31vc0wfNA1+p20evqqnap0KLoRUN0Yk/p3wN52DOEsL4oBFcLdb76hlpKPtzJIgo67j/XLw==",
+ "dependencies": {
+ "@pdf-lib/standard-fonts": "^1.0.0",
+ "@pdf-lib/upng": "^1.0.1",
+ "pako": "^1.0.11",
+ "tslib": "^1.11.1"
+ }
+ },
+ "node_modules/print-js": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmmirror.com/print-js/-/print-js-1.6.0.tgz",
+ "integrity": "sha512-BfnOIzSKbqGRtO4o0rnj/K3681BSd2QUrsIZy/+WdCIugjIswjmx3lDEZpXB2ruGf9d4b3YNINri81+J0FsBWg=="
+ },
+ "node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ }
+ }
+}
diff --git a/src/js/print/package.json b/src/js/print/package.json
new file mode 100644
index 0000000..0be0b57
--- /dev/null
+++ b/src/js/print/package.json
@@ -0,0 +1,16 @@
+{
+ "name": "printjs",
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "pdf-lib": "^1.17.1",
+ "print-js": "^1.6.0"
+ }
+}