dmitry-kuchura/pdf-to-html-php

使用 Poppler-utils 的 PHP PDF 到 HTML 转换器

2.0.1 2019-08-05 12:30 UTC

This package is auto-updated.

Last update: 2024-09-23 02:12:16 UTC


README

Build Status

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.*"
}

需求

  1. 您必须在您的系统上安装 poppler-utils 包。您还必须确保拥有 poppler-utils 的用户与您的 Nginx 用户相匹配,否则您将无法访问此包。

  2. 在实例化 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

反馈 & 贡献

向我发送改进或任何错误的问题。我喜欢帮助并解决其他人的问题。谢谢 👍