如何通过HummusRecipe在服务端解密PDF?Express实现遇阻求助
解决Node.js/Express中带密码PDF的解密问题
我之前也碰到过类似的qpdf SPAWN错误,大概率是环境依赖没配置到位,加上HummusRecipe确实没有解密能力,给你几个靠谱的解决思路:
一、修复qpdf的SPAWN错误
node的qpdf包本质是调用系统层面的qpdf二进制程序,不是纯JS实现,所以SPAWN错误基本是系统里没装qpdf或者路径没配置对:
- 先安装系统级的qpdf:
- Linux:执行
sudo apt-get install qpdf - macOS:用Homebrew装
brew install qpdf - Windows:从qpdf官方渠道下载安装包,安装后把qpdf的bin目录添加到系统
PATH环境变量里
- Linux:执行
- 重新安装node的qpdf包:
先卸载旧版本再装最新稳定版:npm uninstall qpdf && npm install qpdf - 手动指定qpdf二进制路径:
如果PATH配置后还是不行,可以在代码里直接指定qpdf的实际路径:const qpdf = require('qpdf'); const express = require('express'); const app = express(); // Express接口示例 app.post('/decrypt-pdf', (req, res) => { const options = { inputFile: `${process.cwd()}/logs/temp.pdf`, outputFile: `${process.cwd()}/logs/decrypted.pdf`, password: '123', // 你的PDF密码 binaryPath: '/usr/bin/qpdf' // 换成你系统里qpdf的实际路径,Windows类似'C:/Program Files/qpdf/bin/qpdf.exe' }; qpdf.decrypt(options, (err) => { if (err) { console.error('解密失败:', err); return res.status(500).send('解密失败'); } // 读取解密后的文件返回给客户端或者做后续处理 res.sendFile(options.outputFile); }); });
二、替代方案:用纯JS库pdf-lib(更适合服务端)
如果不想折腾系统依赖,推荐用pdf-lib,这是纯JavaScript实现的PDF处理库,不需要依赖任何系统二进制工具,非常适合Express服务端环境:
- 安装依赖:
npm install @pdf-lib/core - Express接口中的解密示例:
const { PDFDocument } = require('@pdf-lib/core'); const fs = require('fs').promises; const express = require('express'); const app = express(); app.post('/decrypt-pdf', async (req, res) => { try { // 读取加密的PDF文件 const encryptedPdfBytes = await fs.readFile(`${process.cwd()}/logs/temp.pdf`); // 加载并解密PDF const pdfDoc = await PDFDocument.load(encryptedPdfBytes, { password: '123' }); // 保存解密后的PDF const decryptedPdfBytes = await pdfDoc.save(); // 写入文件或者直接返回给客户端 await fs.writeFile(`${process.cwd()}/logs/decrypted.pdf`, decryptedPdfBytes); res.setHeader('Content-Type', 'application/pdf'); res.send(decryptedPdfBytes); } catch (err) { console.error('解密出错:', err); res.status(500).send('解密失败,请检查密码或文件是否有效'); } });
补充说明:HummusRecipe的定位确实只包含PDF生成和加密的基础功能,没有提供解密API,所以必须借助第三方工具来完成解密操作。
内容的提问来源于stack exchange,提问作者Puneet Sharma
相关产品推荐
相关产品推荐

