按照Php中的页面范围将PDF拆分为块

时间:2015-04-13 15:49:10

标签: php pdf tcpdf

所以在浏览了许多软件包如TCPDF,FPDP,DOM2PDF和许多其他优秀的php pdf软件包后,我无法在任何允许按页面范围拆分pdf文件的软件包中找到此功能。例如,我想从第20-100页或第30-50页拆分pdf。或者从第20-100页的pdf创建pdf。那么有没有这个功能的图书馆?

3 个答案:

答案 0 :(得分:1)

PDFMerger具有此功能,我个人很喜欢它的简单性。

$pdf = new PDFMerger;
$pdf->addPDF('pdf1.pdf','20-100');
$pdf->addPDF('pdf2.pdf','30-50');
$pdf->merge(); // output PDF, you can specify additional parameters here

答案 1 :(得分:0)

您可以结合使用FPDIFPDF

$new_pdf = new setasign\Fpdi\FPDI();
        
for($i = 20; $i <= 200; $i++){
    $new_pdf->AddPage();
    $new_pdf->setSourceFile("source.pdf");
    $new_pdf->useTemplate($new_pdf->importPage($i));
}

$new_pdf->Output("output.pdf", "F");

答案 2 :(得分:0)

如果 pdf 版本 > 1.4 有任何其他问题,并且您想拆分 pdf 避免使用 FPDI 或任何其他 php 库,您可以使用以下完美的选项:

https://www.ubuntubuzz.com/2016/01/how-to-split-pdf-with-pdfseparate.html

这是一个非常简单的命令行

拆分所有页面

pdfseparate <source_pdf_file> <name>-%d.pdf

仅拆分所选页面

pdfseparate -f 1 -l 3 <source_pdf_file> <name>-%d.pdf

仅拆分第一页

pdfseparate -f 1 -l 1 <source_pdf_file> <name>-%d.pdf

仅拆分最后一页

pdfseparate -f 8 -l 8 <source_pdf_file> <name>-%d.pdf

我已经在我的本地环境中使用 homestead vagrant 和在 ubuntu 18,16 的生产环境中测试了该命令。效果很好,比 gs(ghost 脚本)更好。