java doc 文件转pdf_Java中Word转PDF解决方案
最近在做一个Web项目,需要用户把Word上传然后展示到页面,但是Word在线浏览的功能不及PDF,因此需要将Word转换成PDF然后展示出来。其中遇到许多问题,特此记录,如有不妥之处请指正。
一、实现功能
1、doc、docx都可转换为PDF
2、word含有中文的转换为PDF后可显示
二、转换步骤
word —> html —> pdf
三、使用工具(Jar包)
1、poi、itext(如下maven配置)
作用:poi:用于将word转换为html;itext:将html转换为pdf
poi配置
itext配置
poi、itext版本
2、jsoup(maven配置如下)
作用:poi可以将以docx结尾的word完美转换为html,但是将以doc结尾的word转换为html后meta、img等标签不闭合,导致使用itext将生成的html转换为pdf时报错,因此需要使用jsoup.parse方法使html规范。
jsoup配置
四、上代码
1、word转html
(1)doc结尾word(相对复杂)
doc结尾word转html
(2)docx结尾word
docx结尾word转html
(3)使用jsoup规范html并保存到磁盘
jsoup规范html
2、html转pdf
html转pdf
五、问题
太棒啦,word终于可以转换成pdf(可以升值加薪啦
java doc 文件转pdf_Java中Word转PDF解决方案相关推荐
- Java开发中word转pdf那件事
事件背景 由于项目需要,最新开始研究起word转pdf了,本以为应该是一件很简单的事情,网络上应该已经有很成熟的解决方案了,毕竟在电脑上使用wps或office操作只需要另存为pdf即可,结果一顿百度 ...
- Java后端生成Echarts并渲染Word转PDF
生成pdf文件 文件要素 文件中包含图片 文件中包含列表 文件中包含表格 文件中包含循环嵌套写入的内容 文件需要后端生成echarts图表数据 基于以上几点考虑 技术选取 方式一 itext7是一款用 ...
- pdf to word文件转换器,出自著名的PDF解决方案供应商NitroPDF
PDFtoWord.com 号称是目前最为精准的pdf to word文件转换器,出自著名的PDF解决方案供应商NitroPDF. PDFtoWord.com是在线应用,完全免费,使用方便: - 访问 ...
- java doc转图片_Java 将word文档转换为PNG、XPS、RTF等格式
在日常办公中,Word是一种很好的文档排版工具.在Word创建好文档后, 我们常常需要将其保存为PDF.图片或其他格式.本文就将通过使用Java程序来演示如何将Word文档转换为PNG.XPS.RTF ...
- java 二进制 文件比较_Java中对文件的读写操作之比较
Java 中对文件的读写操作之比较 作者:Jeru Liu 日期:November 29,2000 版本:1.0 纪念在chinaasp积分过一百呕心原创一篇(Java 中对文件的读写操作之比较)拿分 ...
- java读取文件 路径_Java中的获取文件的物理绝对路径,和读取文件
获取文件的绝对路径,读取该文件 一.文件目录打印图 下面的文件目录图,是项目中文件的位置信息:下面的例子是按照这个图来演示的. . |-- java | |-- ibard | | |-- demo1 ...
- java资源文件路径_Java 中获取资源(文件)的路径问题总结
Java 中获取资源(文件)的路径问题总结 首先,Java 中获取资源大体上可分为两种方式,基于 文件系统的 和 基于classpath的. 1. 基于文件系统的相对简单. 比如 构造一个File f ...
- java txt文件转pdf_java txt转化pdf格式出错
我想写一个java类,想把txt文件内容一模一样的转化为pdf格式的,用的BufferReader读取的,pdf用的itext操作的,但是在转化过程中格式总是出错,不知道怎么解决,求大神指导txt内容 ...
- java 获取文件权限_Java中的文件权限,检查权限和更改权限 - Break易站
Java提供了许多方法调用来检查和更改文件的权限,例如可以将只读文件更改为具有写入权限.当用户想要限制文件允许的操作时,需要更改文件权限.例如,文件权限可以从写入更改为只读,因为用户不再想要编辑文件. ...
- word转pdf的java实现_java使用jacob实现word转pdf
背景:日常开发ERP系统,会有一些工单或者合同之类需要填写打印.我们就会将其word模板来通过系统自动化填写并转换为PDF格式(PDF文件打印可保证文件质量,是一种通用的格式.文件不易去修改,比较稳定 ...
最新文章
- mysql insert delay_解析mysqldump的delay-insert选项
- ASP.NET MVC使用Bootstrap系统(2)——使用Bootstrap CSS和HTML元素
- 2018-2019-2 网络对抗技术 20165301 Exp3 免杀原理与实践
- fou循环 php 剩余次数_php for 循环语句使用方法详细说明
- python1.学生管理系统
- Advanced Bash Sell Scripting学习笔记1
- csgo手机上看demo_仪表上的车速和手机导航不一样,哪个更准?碰到测速了该看哪个?...
- “对比Excel”系列再添新成员,手把手教你用Python实现报表自动化!
- php判断长度函数是,php判断字符串长度 strlen()与mb_strlen()函数
- 【HighCharts系列教程】七、导出属性——exporting
- BOOTCAMP U盘安装WIN7一直显示无法创建可引导的USB驱动器
- SAP 金额转换成大写
- 计算机文档怎么字符加宽间距,Word2013设置字符间距,如何设置两个字符之间的距离 -电脑资料...
- FineBI01:FineBI介绍
- 【大话云原生】煮饺子与docker、kubernetes之间的关系
- Dynamics CRM 系统自定义部分的语言翻译
- qt 判断ctrl键被按下_直播 | 当世界被按下暂停键,幸有阅读可慰藉
- 主流的音视频SDK调研
- quartz和timer的区别
- 大数据时代需要学习些什么?
热门文章
- 重置Win10网络网卡命令
- java课程 数独 文库_数独java代码
- 相机标定示例(OpenCV /C++ /matlab工具箱TOOLBOX_calib)
- 分享:把个人网站封装生成百度小程序的方法
- (1)CC3200学习之blinky导入后报编译器版本错误
- STM32 NPN与PNP检测电路
- RuntimeError:The size of tensor a (100) must match the size of tensor b (12800) at non-singleton di
- 苹果官方付费升级内存_苹果6 Plus升级内存后遇到刷机报错40维修过程【详解】...
- 2021,要这样学大数据开发
- 关于电脑是否需要安装杀毒软件的解答