近日,遇到一个需求,要将 word 文档转化为 pdf 文档,并且能在 IE 浏览器、火狐浏览器、谷歌浏览器等主流浏览器上展示 pdf 内容。

分析:目前在线预览 word 文档用的是卓正的 pageoffice 控件,只需要将这份 word 文档转成 pdf ,再展示在浏览器即可。

一、将 word 文件转化成 pdf 文件

这个需求,实现的方案有很多,之前也使用过开源的工具进行转化,比如 openOffice、libreOffice 。他们的好处是提供免费的接口,但是弊端也很明显,那就是需要在服务器安装软件。鉴于项目的拓展和实施现场的增加,决定换一种配置更加简单的方式来实现需求。

在项目中,引入 aspose.words.jar ,然后只需要简单的几行代码,便可实现 word 文件转化为 pdf 文件的功能:

package com.cdw.master;import java.io.File;import com.aspose.words.Document;public class WordToPdf {public static void main(String[] args) {try {// doc路径Document document = new Document("C:\\Users\\Administrator\\Desktop\\de115dc0dfc34e1da9a4d8e0b6b3cbd2.doc");// pdf路径File outputFile = new File("C:\\Users\\Administrator\\Desktop\\java实现word转pdf文件.pdf");// 操作文档保存document.save(outputFile.getAbsolutePath(), com.aspose.words.SaveFormat.PDF);} catch (Exception e) {e.printStackTrace();}}
}

而后,只需要将生成的 pdf 文件路径存入数据库,转化的简单需求就完成了。

注意:
linux 服务器下如果出现中文乱码,那可能是服务器缺少中文字体,安装中文字体就可以解决。
安装字体的方法如下:

  • 查看系统支持的字体
    fc-list
  • 查看系统支持的中文字体
    fc-list :lang=zh
  • 创建字体目录(需要root权限,linux系统默认的字体存放路径为/usr/share/fonts,没有可自行创建)
    cd /usr/share/fonts
    mkdir windows
  • cp字体文件(将需要新增的字体文件拷贝到指定目录中)
    cd windows
    cp ~/fonts/* ./
  • 目录和字体文件设置为所有用户可见
    chmod 755 …/windows
    chmod 755 ./*
  • 应用字体
    mkfontscale (如果提示 mkfontscale: command not found,需自行安装 # yum install mkfontscale )
    mkfontdir
    fc-cache -fv (如果提示 fc-cache: command not found,则需要安装# yum install fontconfig )
  • 再次查看系统支持的字体
    fc-list

二、在浏览器直接打开 pdf 文件

这个需求,原本的实现方案是,谷歌、火狐等现代浏览器,可以直接打开 pdf 文件,不做处理,但是 IE 浏览器打开 pdf 文件会显示下载,这时候,需要安装 Adobe_Reader 软件,然后在 IE 浏览器的加载项中,启用 Adobe PDF Reader。
这样的实现方式对用户来说需要安装软件,不够友好,于是采用新的方案,引入 pdf.js 来实现 pdf 预览。

官网:http://mozilla.github.io/pdf.js/
源码地址:https://github.com/mozilla/pdf.js

下载后,文件目录如下:

其中代表的含义如下:

├── LICENSE
├── build/
│ ├── pdf.js - 显示层
│ └── pdf.worker.js - 核心层
└── web/
├── cmaps/ - 字符映射(由核心要求)
├── compressed.tracemonkey-pldi-09.pdf - 测试 pdf
├── debugger.js - 有帮助的PDF调试功能
├── images/ - 观看者和注释图标的图像
├── l10n.js - 汉化
├── locale/ - 翻译文件
├── viewer.css - viewer 页面样式
├── viewer.html - viewer 页面
└── viewer.js - viewer js

使用的方法也很简单,只需要在页面调用即可,下面给出演示代码:

 <script type="text/javascript">var pdfFilePath = '${pdfFilePath}';//后台传过来的 pdf 文件路径$(function() {showPdf(pdfFilePath);});function showPdf(pdfFilePath){document.getElementsByTagName('iframe')[0].src = "${resource}/pdfjs/web/viewer.html?file="+encodeURIComponent("${root}/writPrint/download.do?path=" + pdfFilePath + "&fileType=pdf");document.getElementsByTagName('iframe')[0].height = document.documentElement.clientHeight-10;}/*** 页面变化调整高度*/window.onresize = function(){var fm = document.getElementsByTagName("iframe")[0];fm.height = window.document.documentElement.clientHeight-10;}</script><div style="margin:10px auto;"><iframe src="" width="100%" frameborder="0"></iframe></div>

最终效果:

附录

aspose.words.jar 三个破解版的 jar 包:
点击下载 aspose.words.jar
pdf.js 调试可用的文件:
点击下载 调试可用 pdf.js

word文档转pdf并在任意浏览器预览打印一体化方案相关推荐

  1. 附件预览(可用于图片、word文档、pdf、.xls表格等预览)

    一.fileView.vue文件里的完整代码(fileView.vue即为抽离出的附件预览组件) 1.html部分 <template><div class="docCon ...

  2. 永中word页码怎么从第二页开始_快捷的word文档转pdf好方法推荐

    阅读本文前,请您先点击上面的"蓝色字体",再点击"关注",这样您就可以继续免费收到文章了.每天都会有分享,都是免费订阅,请您放心关注.注图文来源网络,侵删 wo ...

  3. Word文档转PDF的功能

    最近项目中有用到Word文档转PDF的功能,做了一些尝试,也遇到了一些困难.  下面把尝试的情况记录下来,也希望做过类似工作的童鞋能一起探讨一下.  http://www.iteye.com/topi ...

  4. Java 将 Word 文档转换为 PDF 的完美工具

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:为什么魂斗罗只有 128 KB却可以实现那么长的剧情?个人原创+1博客:点击前往,查看更多 来源:https:/ ...

  5. 如何将Microsoft Word文档转换为PDF

    PDFs are handy for distributing documents so that they're seen the same way by all parties. Typicall ...

  6. poi doc转docx_编写简历及Python转Word文档为Pdf(续)

    续上文,讲述了前端求职面试,本文将讲述怎么找简历模板和怎么将Word文档转换pdf文件. [点击文末"阅读原文"即可查看我的简历(word版本.pdf版本)作为参考] 上文已说清楚 ...

  7. azw3转换为pdf_干货:如何Java 将 Word 文档转换为 PDF

    在日常工作中,PDF格式良好的视觉阅读性和稳定性使其使用越来越广泛.因此我们常会遇到需要将成型的Word文档转换为PDF格式的情况.本文就将通过使用Java程序来演示如何将Word文档转换成PDF格式 ...

  8. Java将Word文档转换为PDF的完美工具

    引用至:https://mp.weixin.qq.com/s/JIgo3f98HufGJx23mgtvag Java 将 Word 文档转换为 PDF 的完美工具 在日常工作中,PDF格式良好的视觉阅 ...

  9. 简要介绍word文档转换为pdf格式文档的工具

    找了很多工具,其实都是乱七八糟的,没几个好用的,最好还是用Adobe Acrobat Pro吧,这个就很方便了,而且转换的也不错. ABC Amber PDF Converter ABC Amber ...

最新文章

  1. linux c 屏幕触摸_交互式拼接屏应用互动触摸屏实现大屏幕拼接墙
  2. 【Groovy】MOP 元对象协议与元编程 ( 方法合成 | 动态注入方法 )
  3. 调研机构称明年全球数据中心基础设施支出将增长6%
  4. 如何进入鸿蒙系统,魅族确认接入鸿蒙系统!并且即将亮相和用户碰面
  5. 代码雨代码源复制_小程序基于Parser添加长按复制、代码高亮等功能
  6. Java面向对象(4)--封装和隐藏
  7. linux下qq怎么截图,ubuntu 12.04使用QQ截图安装教程
  8. 使用思科asa防火墙deny QQ农场
  9. 【数据库系统原理】实体-联系模型
  10. 单例模式(含多线程处理)
  11. 高等代数期末考试题库及答案_复旦大学2019--2020学年第一学期19级高等代数I期末考试第六大题...
  12. 新库上线 | CnOpenData中国工业企业绿色专利及引用被引用数据简介
  13. 推荐5款超实用的小软件,建议先收藏再下载
  14. 计算机硬盘常用分区工具,三款好用的磁盘分区工具推荐
  15. qq里面发送图片显示服务器被拒绝,如何解决qq无法发送图片的问题
  16. Java实现简单模拟购物程序
  17. cydia多开微信_cydia怎么安装微信
  18. 浅谈老妈的QQ号被盗之后
  19. jsp表单提交中文乱码的解决
  20. ART-Pi系列文章

热门文章

  1. 西门子S7-1200PLC堆栈程序 在使用西门子1200PLC时候发现,系统没有自带的堆栈功能块,不能实现数据的先进先出后进后出功能
  2. 笔的图片 html,笔的素描画图片
  3. Sharestation 工作站GPU虚拟化,实现共享GPU办公
  4. win7 任务栏 通知区域
  5. CY7C68000 UTMI PHY芯片介绍
  6. HTML、CSS学习笔记3(平面转换:位移、旋转、缩放,渐变)
  7. python输出emoji表情符号 学习笔记
  8. 如何做好项目管理任务分配
  9. Web-app,一款简洁高效率绿色html编辑器-安卓软件
  10. SQL中实用的小技巧