ncjoes / pdf-suite
Poppler-Php 的一个高级包装器,用于使用 Poppler 工具提取和转换 PDF 内容
v0.1.4
2017-07-20 09:27 UTC
Requires
- php: >=5.5.9
- illuminate/filesystem: ^5.3
- illuminate/support: ^5.3
- ncjoes/poppler-php: 0.1.*
- symfony/css-selector: 3.1.*
- symfony/dom-crawler: 3.1.*
Requires (Dev)
- phpunit/phpunit: 5.5.*
README
PDF Suite 可以提取和转换 PDF 文件内容到多种格式,包括 HTML 和 SVG,使用 Poppler 工具
为什么使用 PDF-Suite?
许多标记为 PDF 转换器的软件包实际上是 *->PDF 转换器,即从其他格式转换为 PDF。另一方面,PDF Suite 提供了高层次的抽象,使 PopplerPhp 包更容易将您的 PDF 文件转换为 Poppler utils 支持的任何格式。支持的格式包括
- HTML
- JPG, PNG, TIFF
- PostScript (PS)
- 封装 PostScript (EPS)
- 可缩放矢量图形 (SVG)
- 纯文本
您还可以使用此软件包通过 PHP 来拆分 PDF 文件、合并 PDF 文件以及从 PDF 文件中分离嵌入项。
如何安装?
您可以使用以下两种方法之一安装此软件包
- 通过 Composer 安装(ncjoes/pdf-suite 在 Packagist 上);
- 使用官方 Git 仓库(https://github.com/ncjoes/pdf-suite)。
然后,引入 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 许可证 发布。
反馈 & 贡献
通知我任何问题、错误或改进。谢谢 👍