关于利用PHP实现微信小程序pdf文件预览功能之分享解析

本文是关于利用PHP实现微信小程序pdf文件预览功能之分享解析,下面是详细介绍,希望能给大家带来帮助。



关于利用PHP实现微信小程序pdf文件预览功能之分享解析


关于利用PHP实现微信小程序pdf文件预览功能之分享解析


本文给大家介绍三个解决方案,如下所示:


方法一:使用小程序的webview,在网页中实现预览。体验还是可以的,但是遇到的问题是 跨域问题无法解决。


方法二:pdf.js。网上很多方案说是用这个,在服务器上写个静态页面进行预览。这种方案的话,如果pdf文件在自己域名的服务器上还可以。但是如果文件在第三方的oss中,还是会碰到跨域问题。而且线上小程序会出跳转提示。pdf.js文档比较难啃,各种兼容性,未知问题无法预知。


方法三:pdf文件转图片,小程序端只是加载相应的图片。这种方案最完美了,不过比较考研后端开发者。我们的后端嫌麻烦,不给我整,无奈。我只能自己来整了。


实现思路


将要预览的pdf文件的链接,跟要预览的页数传递给后端。后端根据传递的参数去解析pdf文件,并把需要的那一页返回为图片即可。


●  服务器需要安装图像处理软件(ImageMagick) 用于生成图片


●  php需要安装ImageMagick对应的扩展


●  服务器需要安装 ghostscript 用于打开并解析pdf文件


最终效果


最终效果


通过参数p指定相应的页数以后,左边就能显示出相对应页数的图片了。


实现步骤


●  下载并编译安装 ImageMagick


wget https://netix.dl.sourceforge.net/project/imagemagick/im7-src/ImageMagick-7.0.7-25.tar.gz
tar -zxvf ImageMagick-7.0.7-25.tar.gz
cd ImageMagick-7.0.7-25
./configure
make && make install


五条命令分别对应的操作为:下载 解压 打开目录 配置 编译安装


●  为php安装扩展 imagemagick (我是在宝塔中一键安装的)


为php安装扩展 imagemagick


还可以进行编译安装,这里就暂且省略咯。


●  安装 ghostscript


wget https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs925/ghostscript-9.25.tar.gz
tar zxvf ghostscript-9.25.tar.gz
cd ghostscript-9.25
./configure --prefix=/usr
make && make install


五条命令分别对应的操作为:下载 解压 打开目录 配置 编译安装


●  配置命令到linux中


echo "/usr/local/lib" >> /etc/ld.so.conf 
ldconfig


●  php解析文件代码


<?php
try{
    $url = !empty($_GET['url']) ? $_GET['url'] : die('error');
    $page = isset($_GET['p']) ? $_GET['p']-1 : '0';
    $file_name = 'temp_' . mt_rand(1000,9999) . 'pdf';
    file_put_contents( './'.$file_name,file_get_contents($url));
    $imagePreview = new imagick('./'. $file_name . '['.$page.']');
    $imagePreview->setImageFormat( "jpg" );
    // $imagePreview->setResolution( 900, 900 );
    header( "Content-Type: image/jpeg" );
    echo $imagePreview;
    unlink('./'. $file_name);
}catch(\Exception $e){
    echo '发生错误';
}

注意:pdf文件的路径可以是自己服务器的,也可以自己调整。


以上就是关于利用PHP实现微信小程序pdf文件预览功能之分享解析,翼速应用平台内有更多相关资讯,欢迎查阅!


我来说两句

0 条评论

推荐阅读

  • 响应式布局CSS媒体查询设备像素比介绍

    构建响应式网站布局最常见的是流体网格,灵活调整大小的站点布局技术,确保用户在使用的幕上获得完整的体验。响应式设计如何展示富媒体图像,可以通过以下几种方法。

    admin
  • 提升网站的性能快速加载的实用技巧

    网站速度很重要,快速加载的网站会带来更好的用户体验、更高的转化率、更多的参与度,而且在搜索引擎排名中也扮演重要角色,做SEO,网站硬件是起跑线,如果输在了起跑线,又怎么跟同行竞争。有许多方法可提升网站的性能,有一些技巧可以避免踩坑。

    admin
  • 织梦CMS TAG页找不到标签和实现彩色标签解决方法

    织梦cms是我们常见的网站程序系统的一款,在TAG标签中常常遇到的问题也很多。当我们点击 tags.php 页的某个标签的时候,有时会提示:“系统无此标签,可 能已经移除!” 但是我们检查程序后台,以及前台显示页面。这个标签确实存在,如果解决这个问题那?

    admin
  • HTML关于fieldset标签主要的作用

    在前端开发html页面中常用的标签很多,今天为大家带来的是关于HTML中fieldset标签主要的作用说明,根据技术分析HTML

    admin

精选专题