knox / poppler-php
为 Poppler-utils 提供的完整、全面且灵活的 PHP 封装器
v1.3
2021-05-21 12:03 UTC
Requires
- php: ^7.2
- illuminate/config: ^6.0 || ^7.0 || ^8.0 || ^9.0
- illuminate/support: ^6.0 || ^7.0 || ^8.0 || ^9.0
Requires (Dev)
- phpunit/phpunit: ^8.0 || ^9.0
README
PopplerPhp 是 Poppler-utils 的一个完整且非常灵活的 PHP 封装器。此软件包提供给您,以便您可以使用 php 和 poppler-utils 从 PDF 文件中提取内容,并将您的 PDF 文件转换为以下格式之一:
- HTML
- JPG, PNG, TIFF
- PostScript (PS)
- 封装 PostScript (EPS)
- 可伸缩矢量图形 (SVG)
- 纯文本
您还可以使用此软件包在您的 PHP 脚本中拆分 PDF 文件、合并 PDF 文件以及从 PDF 文件中分离嵌入项。使用 Knox\PopplerPhp\PdfInfo
类,您可以查询任何 PDF 文件的元数据。
重要提示
安装
建议通过 Composer 安装 Poppler-PHP。
在您的项目目录下运行此命令
composer require knox/poppler-php
或添加此行到您的 composer.json
{ "knox/poppler-php": "1.2.*" }
依赖项
为了使用 Poppler-PHP,您需要安装 Poppler。根据您的配置,请遵循 http://poppler.freedesktop.org/ 上的说明。您还需要配置您的 PHP 环境,以启用 shell 访问。
简要来说:
如果您使用的是 Ubuntu 发行版,只需通过 apt 安装即可
sudo apt-get install poppler-utils
对于 Windows 用户
首先在此处下载 Windows 的 poppler-utils:http://blog.alivate.com.au/poppler-windows/。
解压下载的存档,并将 bin
目录的内容复制到 your-project-path/vendor/bin/poppler/
。
对于 OS/X 用户
1. 安装 brew
Brew 是 OS/X 上著名的包管理器: https://brew.sh.cn/ (类似于 aptitude)。
2. 安装 poppler
brew install poppler
用法
以下是一些示例。
<?php // if you are using composer, just use this use Knox\PopplerPhp\PdfInfo; use Knox\PopplerPhp\Config; use Knox\PopplerPhp\PdfToCairo; use Knox\PopplerPhp\PdfToHtml; use Knox\PopplerPhp\Constants as C; // set Poppler utils binary location Config::setBinDirectory('C:/path-to-project/vendor/bin/poppler'); // set output directory Config::setOutputDirectory('C:/path-to-project/storage/poppler-output'); // get pdf meta-data $pdf = new PdfInfo('path-to-file\file.pdf'); $info = $pdf->getInfo(); //returns an associative array $authors = $pdf->getAuthors(); //...e.t.c. //Convert PDF document to various image formats $cairo1 = new PdfToCairo(__DIR__.'/sources/test1.pdf'); $cairo2 = clone $cairo1; $cairo3 = clone $cairo1; $cairo4 = clone $cairo1; $cairo5 = clone $cairo1; $cairo6 = clone $cairo1; $cairo1->firstPageOnly(); $cairo1->generatePNG(); $cairo2->firstPageOnly(); $cairo2->generateJPG(); //$cairo3->firstPageOnly(); //$cairo3->generateTIFF(); //PDT to TIFF conversion is not working at the moment, hope to fix it soon $cairo4->startFromPage(1)->stopAtPage(1); $cairo4->generatePS(); $cairo5->setPostScriptLevel(C::_LEVEL3)->startFromPage(1)->stopAtPage(1); $cairo5->generateEPS(); $cairo6->startFromPage(1)->stopAtPage(2); $cairo6->generateSVG(); //generate HTML $pdfToHtml = new PdfToHtml(__DIR__.'/tests/sources/test1.pdf'); $pdfToHtml->setZoomRatio(1.8); $pdfToHtml->exchangePdfLinks(); $pdfToHtml->startFromPage(1)->stopAtPage(5); $pdfToHtml->generateSingleDocument(); $pdfToHtml->noFrames(); $pdfToHtml->oddPagesOnly(); $pdfToHtml->outputToConsole(); print_r($pdfToHtml->generate()); //html string ?>
许可
PopplerPHP 软件包是开源软件,遵循 MIT 许可协议。
反馈 & 贡献
通知我任何问题、错误或改进。谢谢 👍