使用nodejs进行PDF加密

时间:2017-09-13 14:20:17

标签: node.js

我需要从现有的pdf创建pdf。将现有pdf复制到新pdf中,新pdf将受密码保护(文件打开密码)。

我可以使用PHP mpdf来做到这一点。只想知道nodejs是否可行。

要求很简单:

1-将现有的pdf复制到新的pdf中。 2-密码保护新pdf。

由于

1 个答案:

答案 0 :(得分:1)

是的,可以使用QPDF Traceback (most recent call last): File "call_test.py", line 9, in <module> subprocess.call(["python3", "print_process.py"], stdout=customio) File "/usr/lib/python3.4/subprocess.py", line 537, in call with Popen(*popenargs, **kwargs) as p: File "/usr/lib/python3.4/subprocess.py", line 823, in __init__ errread, errwrite) = self._get_handles(stdin, stdout, stderr) File "/usr/lib/python3.4/subprocess.py", line 1302, in _get_handles c2pwrite = stdout.fileno() io.UnsupportedOperation: fileno Encrypt中的nodejs PDF。

步骤:

1.安装:

使用以下命令

在您的机器/服务器上安装QPDF
sudo apt-get install qpdf

brew install qpdf

2.检查它是否正常工作

qpdf --encrypt user-password owner-password key-length flags -- source-file-path destination-file-path

例如:

qpdf --encrypt test test 40 -- Downloads/1.pdf Downloads/encrypted.pdf

现在,

i。尝试打开Downloads文件夹中的 encrypted.pdf 文件。

II。它将要求输入密码,输入密码测试,这是在加密PDF文件时给出的。现在您可以打开文件,这意味着QPDF正在运行。

如何在nodejs中执行此操作?

您可以使用child processshelljs

在nodejs中执行相同的操作

代码:

 var exec = require('child_process').exec;
 var cmd = 'qpdf --encrypt test test 40 -- Downloads/1.pdf Downloads/encryptpdfvianode.pdf';

 exec(cmd, function (err){
       if (err){
          console.error('Error occured: ' + err);
       }else{
          console.log('PDF encrypted :)');
       }
 });

Note:您还可以查看node-qpdf npm包。