当前位置:

首页 > 编程开发 > 将 PDF 文件转换为缩略图在 PHP 中

将 PDF 文件转换为缩略图在 PHP 中

本篇文章将讨论可用于将pdf文档转换为一组PHP预览图像的方法。预览为您的内容增加了一层安全性,因为图像上的内容无法复制和粘贴。它们还提供其他我们不会详述的功能。将PDF文档转换为预览图像的最简单方法是利用第三方库。这些都是:GhostscriptImageMagick使用php和Ghostscript将PDF文档转换为预览图像此命令行实用程序可在windows、linux和Mac上使用。按照以下步骤将PDF文档转换为预览图像。要开始安装,请访问Ghostscript的官方网站,下载可执行文件,然后按照安

本文目录

    本篇文章将讨论可用于将 pdf 文档转换为一组 PHP 预览图像的方法。

    预览为您的内容增加了一层安全性,因为图像上的内容无法复制和粘贴。 它们还提供其他我们不会详述的功能。

    将 PDF 文档转换为预览图像的最简单方法是利用第三方库。 这些都是:

    1. Ghostscript
    2. ImageMagick

    使用 php 和 Ghostscript 将 PDF 文档转换为预览图像

    此命令行实用程序可在 windows、linux 和 Mac 上使用。 按照以下步骤将 PDF 文档转换为预览图像。

    1. 要开始安装,请访问 Ghostscript 的官方网站,下载可执行文件,然后按照安装说明进行操作。
    2. 运行下面的代码来验证安装。
      
      $gs --version
      
    3. 在您的 PDF 文件目录中,运行以下命令。 ```bash $gs -dSAFER -dBATCH -sDEVICE=jpeg \

    -dTextAlphaBits=4 -dGraphicsAlphaBits=4
    -dFirstPage=1 -dLastPage=1 -r300
    -sOutputFile=preview.jpg input.pdf

    
    4. 上面的命令将在您的文档上创建起始页的图像。 我们将调用 `exec()` 函数来使用 PHP 中的命令,如下所示。
    ```php
    
    exec( "ls -l", $output_str, $return_val );
    foreach ( $output_str as $line ) {
    echo $line . "\n";
    }
    ?>
    

    上面的代码会将所有目录和文件加载到控制台。 我们现在可以使用 PHP 代码来执行 Ghostscript 命令。

    这是我们使用的 PHP 脚本。

    
    
    
    function my_pdf ( $file ) {
    $file_info = file_get_contents( $file );
    
    if ( preg_match( "/^%PDF-[0-1]\.[0-9]+/", $file_info ) ) {
    return true;
    }
    else {
    return false;
    }
    }
    function our_preview ( $file ) {
    $our_fORMat = "png";
    $prvw_page = "1";
    $resolution = "300";
    $our_file = "prvw.jpg";
    
    $command= "gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=" . $our_format . " ";
    $command .= "-dTextAlphaBits=" . " -dGraphicsAlphaBits=" . . " ";
    $command .= "-dFirstPage=" . $prvw_page . " -dLastPage=" . $prvw_page . " ";
    $command .= "-r" . $resolution . " ";
    $command .= "-sOutputFile=" . $our_file . " '" . $file . "'";
    echo "Running command...\n";
    exec( $command, $com_output, $ret_val );
    foreach( $com_output as $line ) {
    echo $line . "\n";
    }
    if ( !$ret_val ) {
    echo "Preview created !!\n";
    }
    else {
    echo "Error while creating.\n";
    }
    }
    function __main__() {
    global $arg;
    $inp_file = $arg[1];
    
    if ( my_pdf( $inp_file ) ) {
    // Preview for the pdf
    create_preview( $inp_file );
    }
    else {
    echo "Thefile " . $inp_file . " is not a valid PDF document.\n";
    }
    }
    __main__();
    ?>
    

    代码执行从 _main_() 函数开始,它在命令行上获取 PDF 文件并验证其有效性。 如果文件有效,PHP 将执行 Ghostscript 命令。

    输出:

    
    $ php pdf_preview.php input.pdf
    Executing command...
    GPL Ghostscript 9.22 (2022-08-05)
    Copyright (C) 2022 Artifex Software, Inc.All rights reserved.
    This software comes with NO WARRANTY: see the file PUBLIC for details.
    Processing pages 1 through 1.
    Page 1
    Preview created !!
    

    使用 PHP 和 ImageMagick 将 PDF 文档转换为预览图像

    1. 首先将所有 ImageMagick 二进制文件安装到您的系统中。 运行以下命令以安装 ImageMagick 依赖项。

      
      $sudo dnf install GCc php-devel php-pear
      
    2. 运行以下命令以安装 ImageMagick。

      
      $ sudo dnf install ImageMagick ImageMagick-devel
      
    3. 然后,让我们安装 PHP 包装器类。

      
      $ sudo pecl install imagick
      $ sudo bash -c "echo "extension=imagick.so" > /etc/php.d/imagick.ini"
      
    4. 对于在 LAMP 服务器上使用它的用户,您必须重新启动 Apache 网络服务器。

      
      $ sudo service Httpd restart
      
    5. 至此,我们需要的一切都准备好了。 我们现在可以使用早期的 PHP 脚本并编辑 create_preview() 函数。

      
      function create_preview ( $file ) {
       $output_format = "jpeg";
       $preview_page = "1";
       $resolution = "300";
       $output_file = "imagick_preview.jpg";
      
       echo "Fetching preview...\n";
       $img_data = new Imagick();
       $img_data->setResolution( $resolution, $resolution );
       $img_data->readImage( $file . "[" . ($preview_page - 1) . "]" );
       $img_data->setImageFormat( $output_format );
      
       file_put_contents( $output_file, $img_data, FILE_USE_INCLUDE_PATH );
      }
      

      输出结果:

      
      $ php pdf_preview.php input.pdf
      Fetching preview...
      

    这就是我们如何在 PHP 上从 PDF 文档创建预览图像。 这两种方法具有相似的基本功能。 您的选择取决于您的喜好。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 后端开发 PHP编程
    相关文章 更多
    接口日志记录表怎么做?字段设计与填写方法
    接口日志记录表怎么做?字段设计与填写方法

    深入解析接口日志记录表的字段设计原则,涵盖请求头、参数、响应体、耗时等关键数据的采集与存储方法,提供可直接落地的建表代码与性能优化建议,解决线上问题排查难、数据追溯缺失的痛点。

    SQL增删改操作规范:INSERT、UPDATE与DELETE语句详解
    SQL增删改操作规范:INSERT、UPDATE与DELETE语句详解

    掌握SQL增删改核心规范:INSERT必须指定列清单以防结构变更错误;UPDATE和DELETE执行前务必通过SELECT确认WHERE条件范围;利用事务BEGIN/ROLLBACK机制实现误操作回滚。本文结合PostgreSQL语法与跨库差异,提供从语句编写到结果验证的完整安全操作流程,帮助开发者规避生产环境数据风险。

    接口分页查询怎么设置page和size参数
    接口分页查询怎么设置page和size参数

    遇到接口分页数据对不上?本文解析page和size参数的核心设置规则,包括起始索引选择、默认值配置及异常处理,助你避开常见的分页陷阱。

    Java发送post请求发送json数据的实现方法与代码示例
    Java发送post请求发送json数据的实现方法与代码示例

    深入解析Java发送JSON格式POST请求的实现机制,对比原生API与第三方库的代码差异,提供可复制的代码示例,并探讨超时设置、编码处理及微服务场景下的例外情况。

    php解析json内嵌json数据教程及取值方法
    php解析json内嵌json数据教程及取值方法

    本文详解PHP中json_decode处理嵌套JSON数据的机制,对比对象与数组模式的取值差异,提供防止空指针错误的健壮代码示例,帮助开发者快速定位解析失败原因。

    mysql添加字段语句及具体操作方法详解
    mysql添加字段语句及具体操作方法详解

    遇到需要给现有MySQL表增加新列的情况?本文详细解析ALTER TABLE ADD COLUMN语句的标准写法,包括如何在指定位置插入字段、设置默认值以及批量操作的技巧,助你避开锁表风险,轻松完成结构变更。

    python 雷达图开发环境搭建与验证:后端开发者实操指南
    python 雷达图开发环境搭建与验证:后端开发者实操指南

    针对后端开发者的 python 雷达图实操指南。包含基于官方文档的环境准备、venv 虚拟环境创建、pip 依赖管理及验证命令,提供清晰的排错决策图与适用边界说明。

    python 截图:环境准备、实操流程与故障排查指南
    python 截图:环境准备、实操流程与故障排查指南

    面向后端开发者的 python 截图技术文章,涵盖从环境检查、虚拟环境创建到依赖管理的完整流程。提供基于官方文档的验证命令与决策路径,帮助读者快速定位并解决截图任务中的环境问题。

    python编程语言:环境准备、实操流程与验证边界
    python编程语言:环境准备、实操流程与验证边界

    详解 python编程语言 的基础概念与实操步骤。涵盖版本检查、venv 虚拟环境隔离、pip 依赖安装及 sys.executable 验证方法,提供清晰的决策路径与适用边界说明。

    python面试准备:环境配置、实操流程与验证命令
    python面试准备:环境配置、实操流程与验证命令

    为后端开发者提供“python面试”相关的技术准备步骤,包括版本检查、虚拟环境创建、依赖安装及验证命令,严格遵循Python官方文档规范。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。