使用PHP,Imagick ghost脚本将Multip页面PDF转换为单页面

时间:2014-07-31 13:02:58

标签: php unix ghostscript imagick

我有一个带有php的pdf上传脚本,我的问题是当用户上传多页pdf文件时,我希望将其分成单独的pdf文件。例如,如果pdf有3页,结果应该是1.pdf,2.pdf,3.pdf等。

例如,

convert -density 300 filename.pdf filename.png可以很好地创建一个png文件,但我想要相同的pdf文件。

1 个答案:

答案 0 :(得分:2)

您可以使用FPDFFPDI来执行此操作。

require_once('fpdf/fpdf.php');
require_once('fpdi/fpdi.php');

// get the page count
$pdf = new FPDI();
$pageCount = $pdf->setSourceFile($pdfFilePath);

// iterate through all pages
for($pageNumber = 1; $pageNumber <= $pageCount; $pageNumber++)
{
    // create blank document
    $pdf = new FPDI();

    // import a page
    $pdf->setSourceFile($pdfFilePath);
    $templateId = $pdf->importPage($pageNumber);

    // get the size of the imported page
    $size = $pdf->getTemplateSize($templateId);

    // create a page (landscape or portrait depending on the page being imported)
    if($size['w'] > $size['h'])
    {
        $pdf->AddPage('L', array($size['w'], $size['h']));
    }
    else
    {   $pdf->AddPage('P', array($size['w'], $size['h']));
    }

    // use the imported page
    $pdf->useTemplate($templateId);

    // write the PDF file
    $pdf->Output(('/path/to/save/'.$pageNumber.'pdf'), 'F');
}