jamesyapkm/poppler-php

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

1.2.1 2023-03-30 07:49 UTC

This package is auto-updated.

Last update: 2024-09-30 01:35:45 UTC


README

PopplerPhp 是 Poppler-utils 的完整且非常灵活的 PHP 封装器。此包提供给您,以便您可以使用 php 和 poppler-utils 从 PDF 文件中提取内容,并将 PDF 文件转换为以下任何格式

  • HTML
  • JPG, PNG, TIFF
  • PostScript (PS)
  • 封装 PostScript (EPS)
  • 可缩放矢量图形 (SVG)
  • 纯文本

您还可以使用此包在 PHP 脚本中分割 PDF 文件、合并 PDF 文件以及从 PDF 文件中分离嵌入的项目。通过 jamesYapKM\PopplerPhp\PdfInfo 类,您可以查询任何 PDF 文件的元数据。

重要提示

安装

建议通过 Composer 安装 Poppler-PHP。

在您的项目目录中运行此命令

composer require jamesYapKM/poppler-php

或将此行添加到您的 composer.json

{
	"jamesYapKM/poppler-php": "0.1.*"
}

依赖项

为了使用 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 jamesYapKM\PopplerPhp\PdfInfo;
use jamesYapKM\PopplerPhp\Config;
use jamesYapKM\PopplerPhp\PdfToCairo;
use jamesYapKM\PopplerPhp\PdfToHtml;
use jamesYapKM\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 许可证

反馈 & 贡献

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