在项目开发中经常会有将“word转换为pdf”、“将word转换为图片”、将“pdf转换为图片” 的需求。

针对如上需求,写一下自己在这方面的实现:

1、word转换为pdf ,前面有文章已经写过,参考地址: http://blog.csdn.net/catoop/article/details/42527349

2、word转换为图片,实现思路为 word——>pdf——>png   第一步转换参考前面写过的文章

3、pdf转换为图片,我们实现思路 pdf——>png

本文重点说一下 pdf 到 png 的转换:

首先我们要做如下准备:

1、GhostScript 安装

2、ImageMagick 安装

下面做一下分解:

一、GhostScript 安装和测试

我们先下载安装 GhostScript,官网地址:http://ghostscript.com/download/gsdnld.html(我已经下载过一个免安装版本,官方9.15版本 http://download.csdn.net/detail/catoop/8363115),这个建议大家使用官方最新版本。

(这里下载可以直接运行的版本 ghostscript-9.15-linux-x86_64.tgz ,下载解压后,直接复制到 /usr/bin 目录下,命名为gs 即可,如果/usr/bin目录下已经存在该文件,记得备份之前的文件后再拷贝过去)

安装成功后,输入命令 gs -version 如果有如下输出,说明安装成功,打印的是版本。

GPL Ghostscript 9.15 (2014-09-22)
Copyright (C) 2014 Artifex Software, Inc.  All rights reserved.

然后用如下命令转换输出一个pdf测试,命令:

gs -dNOSAFER -r300 -dBATCH -sDEVICE=pngalpha -dNOPAUSE -dEPSCrop -sOutputFile=testfilepng/%d.png testfile.pdf

执行命令后,会有如下输出,其中Page为转换的页码,其他输出是因为一些字体问题而出现的数据,只要能输出到最后一页中间不中断,就说明文件解析转换成功,下面是我转换的一个文件的输出内容:

GPL Ghostscript 9.15 (2014-09-22)
Copyright (C) 2014 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 38.
Page 1
Page 2
Page 3
Substituting font Helvetica for ArialMT.
Loading NimbusSanL-Regu font from %rom%Resource/Font/NimbusSanL-Regu... 5956124 4561384 9518216 8029777 3 done.
Substituting font Helvetica-Bold for Arial-BoldMT.
Loading NimbusSanL-Bold font from %rom%Resource/Font/NimbusSanL-Bold... 6013452 4628661 10043208 8183225 3 done.
Page 4
Page 5
Page 6

至此,GhostScript 的安装和测试已经成功。

PS:关于 gs 命令的很多参数,需要的对照官网进行研究吧。很强大的。

二、ImageMagick 安装

下载安装 ImageMagick,官网下载地址:http://www.imagemagick.org/script/download.php ,其中有很多连接,找一个能下载的下载安装(都是国外网站,需要的就拨一下VPN吧)

安装成功后,使用命令 convert -version 查看ImageMagick 版本号,验证是否安装成功,如下:

[root@localhost ghostscript-9.15-linux-x86_64]# convert -version
Version: ImageMagick 6.5.4-7 2012-04-10 Q16 OpenMP http://www.imagemagick.org
Copyright: Copyright (C) 1999-2009 ImageMagick Studio LLC

执行命令,进行pdf转换测试:

convert /opt/shanhy/testfile.pdf /opt/shanhy/testpdfpng/%d.$pic

至此,ImageMagick 安装和测试完成。

有的朋友可能会问,上面我们使用 ghostscript 已经可以转换文件图片,为什么还要安装ImageMagick呢?

这里解释一下:ImageMagick 的 convert 命令重点和强大之处是图片的处理能力,很多时候,我们需要直接对pdf转换出来的图片进行处理。这种情况下,使用 convert 命令会满足我们很多需求,关于 convert 命令的很多参数,大家查看关于 ImageMagick 的资料了解,这里也不做赘述。

另外说一下:convert 命令直接把pdf 转换为图片,是依赖的 ghostscript 库,所以 ghostscript 可以单独进行图片转换,而 convert 在安装ghostscript 之前,只能进行单独的图片处理,不能直接转换 pdf 为图片。

最后跟大家提一下,在我们的业务应用实现中,建议大家讲文件转换的命令写到shell 脚本中,使用程序调用脚本。虽然也可以通过代码调用 api 实现,不过我觉得还是使用系统的shell 处理,效率会高一些。

谢谢!

转换pdf 为 png相关推荐

  1. vuepdf转换html,Vue网页html转换PDF(最低兼容ie10)的思路详解

    Vue网页html转换PDF(最低兼容ie10)的思路详解 发布时间:2020-10-16 13:05:09 来源:脚本之家 阅读:95 作者:冷藏封 HTML转PDF: 1.页面底层实现--Vue: ...

  2. word在线解密_实用技能 | 5款免费在线转换PDF的网站

    5款免费在线转换PDF的网站 PDF在我们日常学习工作中用途都非常广泛,我们经常会有将下载的PDF文档转换为WORD或EXCEL等其他格式的文档,在我们经常接触到的文件都是付费的,使用起来需要会员,今 ...

  3. SharePoint 2013 Word 转换PDF服务介绍及示例

    前言:在SharePoint使用过程中,经常会发现将文档进行格式转换的需求,之前,看到SharePoint 2013有将PPT转换PDF文档的服务,后来,才发现SharePoint 2010开始,就有 ...

  4. SpringBoot使用LibreOffice转换PDF

    用LibreOffice将Office文档转换PDF 本例使用 LibreOffice-6.0.4.jodconverter-4.2.0.spring-boot-1.5.9.RELEASE. 在Cen ...

  5. tensor转换为图片_为大家介绍图片转换pdf的经验总结!你找对方法了吗?

    图片转换pdf怎么做?不少朋友们在学习和工作中都发现了PDF这种文件格式似乎格外的吃香,你收到的很多培训文件和在网上搜罗的一些学习文件,全部都是PDF格式,PDF格式这么吃香?甚至有人让你把图片都转成 ...

  6. 图片批量转换pdf文件

    文章目录 1. 依赖 2. 工具类抽取 1. 依赖 <!--图片转换pdf Start--><!-- https://mvnrepository.com/artifact/com.i ...

  7. java pdf版本转换_Java 转换 PDF 版本

    在日常工作或生活中,我们使用的某些设备可能对PDF版本有严格要求,此时就需要更改PDF版本来适应设备.本文就将展示如何通过Free Spire.PDF for Java来转换PDF版本.(支持转换PD ...

  8. 不改变分辨率转换PDF为png图片的方法汇总

    tags: Tips 写在前面 最近有小伙伴问我怎么无损转换PDF文件为png格式, 一开始我觉得这个直接使用 之前文章提到的sips命令或者convert命令就可以了, 但是发现还是想简单了, si ...

  9. SharePoint 2013 文档库中PPT转换PDF

    SharePoint 2013 文档库中PPT转换PDF 原文:SharePoint 2013 文档库中PPT转换PDF 通过使用 PowerPoint Automation Services,可以从 ...

  10. java图片转换pdf_Java实现图片转换PDF文件的示例代码

    最近因为一些事情,需要将一张简单的图片转换为PDF的文件格式,在网上找了一些工具,但是这些工具不是需要注册账号,就是需要下载软件. 而对于只是转换一张图片的情况下,这些操作显然是非常繁琐的,所以作者就 ...

最新文章

  1. Mysql优化系列(1)--Innodb重要参数优化
  2. 《组织行为学》_08工作嵌入
  3. 2020-12-2(详细解释neg指令 以及SCAS ,STOS的运用)
  4. 白话科普系列——最好用的浏览器 Chrome,你用了么?
  5. China .NET Conf 2019-.NET技术架构下的混沌工程实践
  6. MySQL 创建索引
  7. mongo数据排序和分页显示
  8. mx350显卡天梯图_分享电脑显卡天梯图2020
  9. android 后台运行管理,Android 后台运行白名单实现保活
  10. Javaweb(html+css+javascript)
  11. 使用scrapy爬取dota2贴吧数据并进行分析
  12. 关于Video Src 带有 blob:http的视频如何下载的问题
  13. WPS 表格 身份证 提取生日 判断性别 计算年龄 15位身份证与18位身份证转换 18位身份证号校验
  14. 【胶囊网络-CapsNet】胶囊网络-CapsNet原理
  15. 2021年危险化学品经营单位主要负责人考试及危险化学品经营单位主要负责人考试试卷
  16. python三种等待元素方法
  17. Java实现第九届蓝桥杯快速排序
  18. 上班时间写开源软件,结果被单位告被警察抓,这算什么?
  19. cache-cloud 编译
  20. QQ玩一玩(轻游戏)开发环境搭建与调试

热门文章

  1. 中值定理如何构建辅助函数
  2. 商汤 | 离线量化算法研究,从经典到原创
  3. eclipse jvm_一种与众不同的JVM语言:Eclipse Xtend(现在适用于Android)
  4. STM32运用RS485通信总结
  5. 数通基础 -- 二层交换技术
  6. esp32 micropython蓝牙 搜不到_esp 使用几次后蓝牙搜索不到问题?
  7. 面经 - 阿里巴巴 - 视频二面
  8. 一元运算符 + 表示正号 - 表示负号
  9. android 记录美剧观看进度,[推荐]i看美剧应用:美剧播出、新闻发生提醒直接推送到手机...
  10. Unity3D专区Unity实现加载场景进度条