csoellinger/xpdf-cli-pdfinfo

围绕Xpdf命令行工具pdfinfo的PHP小封装。

v1.1.2 2021-11-03 16:36 UTC

This package is auto-updated.

Last update: 2024-09-29 05:35:58 UTC


README

围绕Xpdf命令行工具pdfinfo的PHP小封装。

获取以下信息并使其易于访问

  • 制作人
  • 创建日期
  • 修改日期
  • 标记
  • 格式
  • 页数
  • 加密
  • 页面大小
    • 宽度(以点为单位)
    • 高度(以点为单位)
    • 格式
    • 旋转度数
  • 框(媒体、裁剪、出血、修边、艺术)
    • 坐标X(以点为单位)
    • 坐标Y(以点为单位)
    • 宽度(以点为单位)
    • 高度(以点为单位)
  • 文件大小
    • 字节
  • 优化
  • PDF版本

注意:如果您有一个受密码保护的PDF文件,并且没有设置密码参数,您将得到一个进程失败异常。

入门

您的系统应预装PHP 7或更高版本和Composer。

安装

composer require csoellinger/xpdf-cli-pdfinfo

用法

<?php

use XpdfCliTools\PdfInfo\PdfInfo;
use XpdfCliTools\PdfInfo\Model\PdfInfoModel;

$pdfInfo = new PdfInfo();
// Optionally set a custom path to pdfinfo binary file:
// $pdfInfo = new PdfInfo('<Path-To-Binary>');

/** @var PdfInfoModel $info */
$info = $pdfInfo->exec('<Path-To-Pdf>.pdf');

// If you have a passwort protected pdf file:
// $info = $pdfInfo->exec('<Path-To-Pdf>.pdf', 'OwnerPassword');
// $info = $pdfInfo->exec('<Path-To-Pdf>.pdf', null, 'UserPassword');

// Access the pdf informations
echo $info->Creator; // Creator
echo $info->Producer; // Producer
echo $info->CreationDate; // Creation date
echo $info->ModDate; // Modification date
echo $info->Tagged; // Tagged (true/false)
echo $info->Form; // Form(s)
echo $info->Pages; // Number of pages

echo $info->PageSize->Width; // Page width as points
echo $info->PageSize->Height; // Page height as points
echo $info->PageSize->Format; // Page format (if found)
echo $info->PageSize->RotatedDegrees; // Degrees if rotated
echo $info->PageSize->raw; // Raw shell output for page size

// Available boxes: MediaBox, CropBox, BleedBox, TrimBox, ArtBox
echo $info->MediaBox->X; // X coordinate
echo $info->MediaBox->Y; // Y coordinate
echo $info->MediaBox->Width; // Box width as points
echo $info->MediaBox->Height; // Box height as points
echo $info->MediaBox->raw; // Raw shell output for box

echo $info->FileSize->Bytes; // File size in bytes
echo $info->FileSize->raw; // Raw shell output for file size

echo $info->Encrypted; // Encrypted (true/false)
echo $info->Optimized; // Optimized (true/false)
echo $info->PDFVersion; // Version
echo $info->raw; // Raw shell output from pdfinfo

// Get page size as millimeter:
echo $info->PageSize->Width / PdfInfo::MM_TO_PTS; // = Convert points to millimeter
echo $info->PageSize->Height / PdfInfo::MM_TO_PTS; // = Convert points to millimeter

示例

查看public目录内的示例。

运行测试

可以通过执行以下命令运行所有测试:

vendor/bin/phpunit

phpunit将自动在tests目录内找到所有测试并根据phpunit.xml文件中的配置运行它们。

运行示例

PHP有一个内置的服务器用于本地开发。要运行此示例,请切换到public目录并运行

php -S localhost:8000

然后,在浏览器中打开https://:8000/example.php

构建工具

待办事项

  • 添加不同的加密信息:加密:是(打印:是 复制:是 修改:是 添加备注:是)

许可证

本项目受MIT许可证许可 - 有关详细信息,请参阅LICENCE.md文件。