PDF 是一種基于可移植文檔格式(Portable Document Format)的文件,它被廣泛應用于文檔的發布、傳輸和打印上。而在很多情況下,我們需要對 PDF 文件進行一些處理,例如對文件進行截取、合并或其他操作。而如果我們能夠在 PHP 中處理 PDF 文件,就可以極大地方便我們的開發工作。
使用 FPDI 和 FPDF 截取 PDF 文件
FPDI 和 FPDF 是兩個 PHP 庫,它們可以在 PHP 中處理、生成 PDF 文件。FPDF 可以用來生成 PDF 文件,而 FPDI 可以用來導入 PDF 文件并進行一些處理。使用這兩個庫,我們可以輕松實現對 PDF 的截取功能。
// 導入 FPDI 和 FPDF 庫 require_once('fpdf.php'); require_once('fpdi.php'); // 打開 PDF 文件 $pdf = new FPDI(); $pageCount = $pdf->setSourceFile('yourfile.pdf'); // 循環截取每一頁 for($i = 1; $i<= $pageCount; $i++){ $pdf->AddPage(); $pdf->useTemplate($pdf->importPage($i)); $pdf->Output('newfile.pdf', 'F'); }
上述代碼中,我們首先導入了 FPDI 和 FPDF 庫,并打開了 PDF 文件。接著,我們循環遍歷 PDF 文件的每一頁,將每一頁截取出來并保存到一個新的 PDF 文件中。使用這種方式,我們可以輕松地實現對 PDF 文件的截取功能。
使用 iTextSharp 和 GhostScript 截取 PDF 文件
iTextSharp 是一個 .NET 平臺下的 PDF 操作庫,它提供了一套強大的 API,可以用來生成和處理 PDF 文件。而 GhostScript 則是一款跨平臺的 Postscript 和 PDF 處理工具,它提供了一系列的命令行工具,可以用來實現對 PDF 文件的截取功能。我們可以使用這兩款工具來截取 PDF 文件。
// 引入 iTextSharp 庫 require('itextsharp.php'); // 調用 GhostScript 命令,截取 PDF 文件 $cmd = 'gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dFirstPage=1 -dLastPage=3 -sOutputFile=newfile.pdf yourfile.pdf'; exec($cmd); // 使用 iTextSharp 庫將文件轉化為二進制流 $pdfString = file_get_contents('newfile.pdf'); $pdfStream = fopen('php://temp', 'r+'); fwrite($pdfStream, $pdfString); rewind($pdfStream); // 加載 PDF 文件 $pdf = new iTextSharp.text.pdf.PdfReader($pdfStream); $pageCount = $pdf->getNumberOfPages(); // 循環截取每一頁 for($i = 1; $i<= $pageCount; $i++){ $pdfPage = $pdf->getPageN($i); $pdfContentByte = $pdf->getDirectContent(); // 將每一頁輸出到新的文件中 $pdfStamper = new iTextSharp.text.pdf.PdfStamper($pdf, $pdfStream); $pdfStamper->insertPage($i, $pdfPage->getPageSize()); $pdfStamper->getUnderContent($i)->addTemplate($pdfPage, 0, 0); $pdfStamper->close(); // 將文件保存到新的 PDF 文件中 $pdfOut = $pdf->getRelease(); file_put_contents("newfile.pdf", $pdfOut); }
上述代碼中,我們首先引入了 iTextSharp 庫,并調用了 GhostScript 命令來截取 PDF 文件。接著,我們使用 iTextSharp 庫將截取后的文件轉化為二進制流,再加載該流文件。接下來,我們循環遍歷 PDF 文件的每一頁,對每一頁進行處理并輸出到新的文件中。使用這種方式,我們同樣可以輕松地實現對 PDF 文件的截取功能。
總結
PDF 文件是一個十分常用的文檔格式,而在開發過程中,我們經常需要對 PDF 文件進行處理。本文介紹了兩種方法來實現對 PDF 文件的截取,它們分別是使用 FPDI 和 FPDF 庫、以及使用 iTextSharp 和 GhostScript 工具。使用這些工具,我們可以輕松地實現對 PDF 文件的截取功能,從而方便我們的開發工作。