node-signpdf 开源项目教程
node-signpdfSimple signing of PDFs in node.项目地址:https://gitcode.com/gh_mirrors/no/node-signpdf
1. 项目的目录结构及介绍
node-signpdf/
├── bin/
│ └── signpdf.js
├── lib/
│ ├── helpers/
│ │ ├── plainAddPlaceholder.js
│ │ └── ...
│ ├── signpdf.js
│ └── ...
├── test/
│ ├── fixtures/
│ │ ├── certificate.p12
│ │ └── ...
│ ├── signpdf.test.js
│ └── ...
├── .editorconfig
├── .eslintrc.json
├── .gitignore
├── .npmignore
├── .prettierrc
├── LICENSE
├── package.json
├── README.md
└── ...
bin/
: 包含可执行文件,如signpdf.js
,用于签名PDF文件。lib/
: 包含项目的主要逻辑代码,如signpdf.js
和辅助函数。test/
: 包含测试文件和测试数据,如signpdf.test.js
和fixtures/
目录下的测试证书。.editorconfig
,.eslintrc.json
,.gitignore
,.npmignore
,.prettierrc
: 配置文件,用于代码格式化和版本控制。LICENSE
: 项目的开源许可证。package.json
: 项目的依赖和脚本配置。README.md
: 项目的说明文档。
2. 项目的启动文件介绍
项目的启动文件位于 bin/
目录下的 signpdf.js
。这个文件是项目的入口点,用于执行PDF签名操作。以下是 signpdf.js
的主要内容:
#!/usr/bin/env node
const fs = require('fs');
const { sign } = require('../lib/signpdf');
const { plainAddPlaceholder } = require('../lib/helpers/plainAddPlaceholder');
const pdfBuffer = fs.readFileSync(process.argv[2]);
const p12Buffer = fs.readFileSync(process.argv[3]);
const pdfWithPlaceholder = plainAddPlaceholder(pdfBuffer);
const signedPdf = sign(pdfWithPlaceholder, p12Buffer);
fs.writeFileSync(process.argv[4], signedPdf);
#!/usr/bin/env node
: 指定使用Node.js运行该脚本。fs
: Node.js的文件系统模块,用于读取和写入文件。sign
: 从lib/signpdf.js
导入的签名函数。plainAddPlaceholder
: 从lib/helpers/plainAddPlaceholder.js
导入的辅助函数,用于在PDF中添加签名占位符。pdfBuffer
和p12Buffer
: 读取的PDF文件和证书文件的Buffer。pdfWithPlaceholder
: 添加了签名占位符的PDF Buffer。signedPdf
: 签名后的PDF Buffer。fs.writeFileSync
: 将签名后的PDF写入指定文件。
3. 项目的配置文件介绍
项目的配置文件主要包括 package.json
和一些代码格式化及版本控制的配置文件。
package.json
package.json
文件包含了项目的依赖、脚本和其他元数据。以下是部分内容:
{
"name": "node-signpdf",
"version": "1.3.0",
"description": "Simple signing of PDF files in node.",
"main": "lib/signpdf.js",
"bin": {
"node-signpdf": "bin/signpdf.js"
},
"scripts": {
"test": "jest",
"lint": "eslint ."
},
"dependencies": {
"pdf-lib": "^1.11.1"
},
"devDependencies": {
"eslint": "^7.12.1",
"jest": "^26.6.3"
},
"keywords": [
"pdf",
"sign",
"signature",
"pkcs7",
"node"
],
"author": "Volodymyr B. <vbe@mudrekh.com>",
"license": "MIT",
"repository": {
"type": "git",
"url": "git
node-signpdfSimple signing of PDFs in node.项目地址:https://gitcode.com/gh_mirrors/no/node-signpdf