dmitry-kuchura / pdf-to-html-php
使用 Poppler-utils 的 PHP PDF 到 HTML 转换器
Requires
- illuminate/config: ~5
- symfony/filesystem: ^4.2
- symfony/process: ^4.2
- thesoftwarefanatics/php-html-parser: ^1.8.0
Requires (Dev)
- phpunit/phpunit: ~4
- satooshi/php-coveralls: ^1.0
This package is auto-updated.
Last update: 2024-09-23 02:12:16 UTC
README
PDF to HTML PHP 类
一个简单的类,可以将 PDF 文件转换为 HTML 文档。这个包是从 原始维护者 分支出来的。由于它已经被遗弃,我决定迁移这个包并将其移植,以便可以在 php 7.2+ 环境中使用。
安装
composer require dmitry-kuchura/pdf-to-html-php
或者将此包添加到您的 composer.json
{
"dmitry-kuchura/pdf-to-html-php": "^2.0.*"
}
需求
-
您必须在您的系统上安装
poppler-utils包。您还必须确保拥有poppler-utils的用户与您的Nginx用户相匹配,否则您将无法访问此包。 -
在实例化
Pdf类之前,您需要告诉库您的二进制文件的位置。如果没有这样做,将使用默认回退(这可能是大多数人都不正确的),并且您将收到一个通用错误。您可以通过使用此类的Config::set方法来完成此操作。
注意:
Config方法是 Laravel 使用的相同仓库实现。
\Gswits\PdfToHtml\Config::set('pdftohtml.bin', '/usr/local/bin/pdftohtml'); \Gswits\PdfToHtml\Config::set('pdfinfo.bin', '/usr/local/bin/pdfinfo');
用法
在设置好 poll-utils 包并提供库的位置后,您可以继续以下操作
警告!如果您不在一个自动从 composer 加载供应商列表的环境中工作,您将需要手动这样做,通过在文件顶部添加
include /vendor/autoload.php。如果您在 Laravel 中,则不需要这样做。
用法
namespace App\Http\Controllers; use Kuchura\PdfToHtml\Config; use Kuchura\PdfToHtml\Pdf; class PdfController { public function pdf() { Config::set('pdftohtml.bin', '/usr/bin/pdftohtml'); Config::set('pdfinfo.bin', '/usr/bin/pdfinfo'); $pdf = new Pdf(public_path() . '/test.pdf'); $html = $pdf->html(); } }
传递选项给 getDOM
默认情况下,getDom() 将从 PDF 中提取所有图像。如果您不希望保留图像,您可以在调用 `$pdf->html()` 生成您的 HTML 文档之前指定此属性。
$pdfDom = $pdf->getDom(['ignoreImages' => true]);
可用选项
此外,您还可以将几个参数传递给 Pdf 构造函数。这些参数作为标志传递给底层的 pdftohtml 二进制文件。您可以通过 查看 man 页面以获取完整选项列表
- singlePage,默认:false
- imageJpeg,默认:false
- ignoreImages,默认:false
- zoom,默认:1.5
- noFrames,默认:true
OS/X 用户用法说明
感谢 @kaleidoscopique 尝试并使此包在 OS/X 上运行
1. 安装 brew
Brew 是 OS/X 上著名的包管理器: https://brew.sh.cn/ (aptitude 风格)。
2. 安装 poppler
brew install poppler
3. 验证 pdfinfo 和 pdftohtml 的路径
$ which pdfinfo /usr/local/bin/pdfinfo $ which pdftohtml /usr/local/bin/pdfinfo
反馈 & 贡献
向我发送改进或任何错误的问题。我喜欢帮助并解决其他人的问题。谢谢 👍