ncjoes/pdf-suite

Poppler-Php 的一个高级包装器,用于使用 Poppler 工具提取和转换 PDF 内容

v0.1.4 2017-07-20 09:27 UTC

This package is auto-updated.

Last update: 2024-08-29 03:31:34 UTC


README

PDF Suite 可以提取和转换 PDF 文件内容到多种格式,包括 HTML 和 SVG,使用 Poppler 工具

PDF-to-Html PDF-to-Images PDF-to-Text PDF-Splitter PDF-Combiner PDF-to-SVG

为什么使用 PDF-Suite?

许多标记为 PDF 转换器的软件包实际上是 *->PDF 转换器,即从其他格式转换为 PDF。另一方面,PDF Suite 提供了高层次的抽象,使 PopplerPhp 包更容易将您的 PDF 文件转换为 Poppler utils 支持的任何格式。支持的格式包括

  • HTML
  • JPG, PNG, TIFF
  • PostScript (PS)
  • 封装 PostScript (EPS)
  • 可缩放矢量图形 (SVG)
  • 纯文本

您还可以使用此软件包通过 PHP 来拆分 PDF 文件、合并 PDF 文件以及从 PDF 文件中分离嵌入项。

如何安装?

您可以使用以下两种方法之一安装此软件包

然后,引入 vendor/autoload.php 文件以启用 Composer 提供的自动加载机制。否则,您的应用程序将无法找到此 Symfony 组件的类。

最后,将配置设置指向您的 PHP 服务器上 Poppler 工具二进制文件的位置。有关 Poppler Utils 安装的说明,请参阅 PopplerPhp 安装说明。

如何使用?

设置 Poppler 工具二进制文件位置

NcJoes\PdfSuite\Config::setBinDirectory($dir);

以下是一些示例。

<?php
// if you are using composer, just use this
use NcJoes\PdfSuite\PdfSuite;
use NcJoes\PdfSuite\Config;

//Configuration
    Config::setBinDirectory(__DIR__.'/../vendor/bin/poppler');//set up poppler binaries location
    Config::setOutputDirectory(__DIR__.'/results', true); //set main output directory
    Config::doCleanupOnExit(false); //set to true if you want output files to be deleted on script termination


// Create PdfSuite instance
$file = dirname(__FILE__).'\sources\test1.pdf';
$pdfSuite = new PdfSuite($file);

//Pdf metadata
    $pdf_info = $pdfSuite->getPdfInfo(); //returns an associative array
    $authors = $pdf_info->getAuthors();
    $number_of_pages = $pdf_info->getNumOfPages();
    //...e.t.c.

//PDF to HTML converter
    $htmlConverter = $pdfSuite->getPdfToHtmlConverter();
    
    $htmlConverter->setPageRange(1, 16)->useDefaultSettings();
    $htmlConverter->setOutputSubDir('testSinglePageConverterOption');
    
    // returns a directory instance, a OOP model of a directory/folder containing the output files
    $directory = $htmlConverter->convert($htmlConverter::MODE_SINGLE_PAGE_PER_DOC);
    //other output mode options include
        //$converter::MODE_MULTI_PAGED_SINGLE_DOC
        //and
        //$converter::MODE_COMPLEX_DOCUMENT

//PDF to JPEG converter
    $jpegConverter = $pdfSuite->getPdfToJpegConverter();
    $jpegConverter->setPageRange(15, 33);
    $jpegConverter->convert(); // returns a directory instance

//PDF to PNG converter
    $pngConverter = $pdfSuite->getPdfToPngConverter();
    $pngConverter->setPageRange(15, 33);
    $pngConverter->convert(); // returns a directory instance

//PDF to PostScript converter
    $psConverter = $pdfSuite->getPdfToPsConverter();
    $psConverter->setPageRange(15, 33);
    $psConverter->convert(); // returns a directory instance

//PDF to SVG converter
    $svgConverter = $pdfSuite->getPdfToSvgConverter();
    $svgConverter->setPageRange(15, 33);
    $svgConverter->convert(); // returns a directory instance

//You can also obtain the underlying NcJoes\PopplerPhp\PopplerUtil instance
// and use it to further customize any of the converters
    $svgConverter = $pdfSuite->getPdfToSvgConverter();
    $svgConverterUtil = $svgConverter->util();
    $svgConverterUtil->utilOptions(); //returns an array of all available options for svgConverter
    $svgConverterUtil->setOption('key', 'value');
    //etc
?>

许可证

PDF Suite 软件包是开源软件,根据 MIT 许可证 发布。

反馈 & 贡献

通知我任何问题、错误或改进。谢谢 👍