在PHP中分割PDF档案,然后读取并返回结果

时间:2019-06-30 08:03:16

标签: php pdf split

这是系统的工作方式:

  1. 管理员上传多页PDF文件,其中每个页面都包含一个 每个用户的唯一代码。
  2. 系统应将文件拆分为单独的页面。
  3. 用户登录。系统获取其ID作为变量(PDF文件中存在的唯一代码)。
  4. 系统仅向每个用户显示包含其ID的页面。

我没有要求任何代码,只是要求提供一些PDF库的名称,这些库可以完成我要找的事情:)

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用此功能将所有页面从较大的PDF文件拆分为单页PDF文件。

安装

composer require setasign/fpdi-fpdf

代码

use setasign\Fpdi\Fpdi;

/**
 * Split all of the pages from a larger PDF file into single-page PDF files.
 *
 * @param string $filename The filename of the PDF to split
 * @param string $directory The output directory for the new PDF files
 *
 * @return void
 */
function split_pdf(string $filename, string $directory)
{
    $pdf = new FPDI();
    $pageCount = $pdf->setSourceFile($filename);
    $file = pathinfo($filename, PATHINFO_FILENAME);

    // Split each page into a new PDF
    for ($i = 1; $i <= $pageCount; $i++) {
        $newPdf = new FPDI();
        $newPdf->AddPage();
        $newPdf->setSourceFile($filename);
        $newPdf->useTemplate($newPdf->importPage($i));

        $newFilename = sprintf('%s/%s_%s.pdf', $directory, $file, $i);
        $newPdf->Output($newFilename, 'F');
    }
}

用法

split_pdf('test.pdf', 'split/');