nayzawoo/pdf-to-image
Composer 安装命令:
composer require nayzawoo/pdf-to-image
包简介
Convert PDF pages to JPG/PNG images using libvips
README 文档
README
A high-performance PHP library to convert PDF pages to JPG/PNG images using libvips via php-vips.
Why libvips?
libvips is an extremely fast image processing library with a very low memory footprint. Unlike ImageMagick, it does not load the entire image into memory, making it highly efficient for converting large, multi-page PDFs to images.
Requirements
- libvips C library (installation instructions)
- PHP >= 8.5 (with FFI support enabled)
Installation
Install the package via Composer:
composer require nayzawoo/pdf-to-image
Usage
Basic Example
<?php use NayZawOo\PdfToImage\PDF; // Instantiate the converter with the PDF path and options $pdf = new PDF('source.pdf', [ 'dpi' => 150, ]); // Convert and save $pdf->saveAsImage('output.png');
Get Page Count
Retrieve the total number of pages in the PDF file:
$pageCount = $pdf->getPageCount(); // returns int (e.g. 3)
Options
1. PDF Load Options (Constructor)
Pass load options as an associative array to the second argument of the constructor:
$pdf = new PDF('source.pdf', [ 'page' => 0, // Page index to load (0-indexed) 'dpi' => 300, // Resolution for rendering 'n' => 1, // Number of pages to load 'all_pages' => true // Shortcut to load all pages (sets n to -1) ]);
page(int): The page number to extract (starts at0). Default is0.dpi(int): The rendering resolution (dots per inch). Higher values result in higher quality and larger image sizes. Default is300.n(int): The number of pages to load. Default is1.all_pages(bool): If set totrue, it overridesnand tells libvips to load all pages.
2. Save / Output Options
Pass output options as an associative array to the second argument of saveAsImage():
For JPEG Output (.jpg, .jpeg):
$pdf->saveAsImage('output.jpg', [ 'Q' => 80, // Quality factor (0-100) 'strip' => true, // Strip metadata from output 'optimize_coding' => true, // Optimize Huffman coding tables 'interlace' => true // Progressive JPEG output ]);
Q(int): JPEG quality factor (0–100). Default is75.strip(bool): Strip all metadata profiles from the image. Default isfalse.optimize_coding(bool): Compute optimal Huffman coding tables. Default isfalse.interlace(bool): Save as progressive JPEG. Default isfalse.
For PNG Output (.png):
$pdf->saveAsImage('output.png', [ 'compression' => 6, // Compression level (0-9) 'interlace' => true, // Progressive/interlaced PNG output ]);
compression(int): Zlib compression level (0–9). Default is6.interlace(bool): Save using Adam7 interlacing. Default isfalse.
License
This project is licensed under the MIT License. See LICENSE for details.
nayzawoo/pdf-to-image 适用场景与选型建议
nayzawoo/pdf-to-image 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 17 次下载、GitHub Stars 达 1, 最近一次更新时间为 2019 年 11 月 06 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 nayzawoo/pdf-to-image 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 nayzawoo/pdf-to-image 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 17
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 8
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-11-06