如何创建受密码保护的 pdf 文件
Posted
技术标签:
【中文标题】如何创建受密码保护的 pdf 文件【英文标题】:How to create a password protected pdf file 【发布时间】:2011-02-02 12:00:08 【问题描述】:我正在使用 html2fpdf 来创建 PDF 文档。现在,一旦我创建了它,我想确保 PDF 文件受密码保护。这在 php 中如何实现?
【问题讨论】:
【参考方案1】:我一直无法找到直接的 php 解决方案来解决这个问题。我最终使用pdftk 并使用shell_exec()
在生成/上传pdf文件后调用二进制文件。
它接受这样的语法:
pdftk 'inputfile.pdf' output 'outputfile.pdf' user_pw pass1234 owner_pw pass4321
【讨论】:
@Mark 我明白了。试试这个我在这里发布的答案。 bleee,windows软件【参考方案2】:从a blog post on the ID Security Suite site下载我正在使用的库:
<?php
function pdfEncrypt ($origFile, $password, $destFile)
require_once('FPDI_Protection.php');
$pdf =& new FPDI_Protection();
$pdf->FPDF('P', 'in');
//Calculate the number of pages from the original document.
$pagecount = $pdf->setSourceFile($origFile);
//Copy all pages from the old unprotected pdf in the new one.
for ($loop = 1; $loop <= $pagecount; $loop++)
$tplidx = $pdf->importPage($loop);
$pdf->addPage();
$pdf->useTemplate($tplidx);
//Protect the new pdf file, and allow no printing, copy, etc. and
//leave only reading allowed.
$pdf->SetProtection(array(), $password);
$pdf->Output($destFile, 'F');
return $destFile;
//Password for the PDF file (I suggest using the email adress of the purchaser).
$password = "testpassword";
//Name of the original file (unprotected).
$origFile = "sample.pdf";
//Name of the destination file (password protected and printing rights removed).
$destFile ="sample_protected.pdf";
//Encrypt the book and create the protected file.
pdfEncrypt($origFile, $password, $destFile );
?>
【讨论】:
我们可以在没有密码的情况下在windows 8中查看这个加密文件。这是Windows 8中的失败。有什么解决方案吗?谢谢以上是关于如何创建受密码保护的 pdf 文件的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 iText 7 删除受密码保护的 pdf 中的密码