我需要从现有的pdf创建pdf。将现有pdf复制到新pdf中,新pdf将受密码保护(文件打开密码)。
我可以使用PHP mpdf来做到这一点。只想知道nodejs是否可行。
要求很简单:
1-将现有的pdf复制到新的pdf中。 2-密码保护新pdf。
由于
答案 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。
使用以下命令
在您的机器/服务器上安装QPDFsudo apt-get install qpdf
或
brew install qpdf
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正在运行。
您可以使用child process或shelljs
在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包。