knox/poppler-php

为 Poppler-utils 提供的完整、全面且灵活的 PHP 封装器

v1.3 2021-05-21 12:03 UTC

This package is auto-updated.

Last update: 2024-09-21 19:37:59 UTC


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 许可协议

反馈 & 贡献

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