indzz/pdfprotect

为现有 PDF 文件添加密码保护的库

1.0.0 2020-04-24 11:08 UTC

This package is auto-updated.

Last update: 2024-09-24 20:46:22 UTC


README

这是一个 PHP 包装库,用于为现有 PDF 文件添加密码加密。

驱动程序 1 - FPDI

第一个解决方案只需要 PHP。

它使用 FPDI 导入源 PDF 的所有页面,并将每个页面添加到新文件中。然后,它以二进制形式输出文件作为响应。

优点

  • 仅 PHP,无需额外库

缺点

  • 由于免费 PDF 解析器的限制,不支持 PDF 版本 1.5 或以上

请在使用此驱动程序之前将以下包添加到 composer.json 中

{
  "require": {
    "setasign/fpdi": "^2.0",
    "tecnickcom/tcpdf": "6.3.*"  
  }
}

驱动程序 2 - QPDF

第二个解决方案使用 QPDF,这是一个命令行程序。该解决方案简单地调用 shell_exec 来执行 QPDF 并添加密码。

优点

  • 简单
  • 支持 PDF 版本 1.5

缺点

  • 需要在系统上安装额外库

对于 macOS,您可以使用 Homebrew 安装 QPDF

brew install qpdf

对于 Ubuntu,您可以使用 apt 安装

apt-get install -y qpdf

如果您使用其他 Linux 发行版,请参阅相应的包仓库。

示例

最简单的用法是

<?php
use INDZZ\PdfProtector\PdfProtector;

PdfProtector::create('fpdi')
    ->source(__DIR__.'/input/1.pdf')
    ->protect('userPw', 'ownerPw')
    ->output();

更多详细信息请参阅 example 文件夹

许可

此库在 MIT 许可证 下开源。

请参阅以下库的许可证