广告
返回顶部
首页 > 资讯 > 精选 >JAVA怎么实现DOC转PDF
  • 321
分享到

JAVA怎么实现DOC转PDF

2023-06-20 20:06:49 321人浏览 泡泡鱼
摘要

本篇内容介绍了“JAVA怎么实现DOC转pdf”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录一、下载依赖二、代码实现三、转换结果四、后续

本篇内容介绍了“JAVA怎么实现DOC转pdf”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

目录
  • 一、下载依赖

  • 二、代码实现

  • 三、转换结果

  • 四、后续研究

  • 五、总结

Word作为目前主流的文本编辑软件之一,功能十分强大,应用人群广,但是它也存在一些问题。像是Word文件在不同软件或操作平台之间传输的时候,时不时会出现各种格式的“变化”,也会有点“不稳定”,例如内容和格式经常容易篡动。

相较于Word,pdf格式文件显然优秀不少。虽然在内容编辑和修改方面表现不佳,但pdf格式文件在不同平台和软件上的稳定性表现着实出色。日常办公中,越来越多的会选择将编辑好的Word文件转换成Pdf格式文件,然后再分享给第三方浏览。

如果只是1个Word文件转换成Pdf文件,简直so easy;10个Word文件转换成pdf文件,虽烦躁,但能忍;如果是将1000个word文件转换成pdf文件呢?这会估计一股无名之火直冲天灵盖,立马想摔电脑的冲动都有了。

但对于程序猿来说,操作起来显然会容易很多,正好接到一个任务,索性就来和大家分享一下:将docx转成PDF文档,还要以代码的方式实现批量操作。先后参考了Apache poi java库以及docx4j组件,于是选择以docx4j组件来进行文档操作。

第一批次的文档共90篇:

JAVA怎么实现DOC转PDF

以下开始实现docx4j的文档转PDF功能:

一、下载依赖

docx4j所有的依赖jar包使用marven去处理还是蛮简洁的:

<dependency><groupId>org.docx4j</groupId><artifactId>docx4j-JAXB-Internal</artifactId><version>8.2.4</version></dependency><dependency><groupId>org.docx4j</groupId><artifactId>docx4j-export-fo</artifactId><version>8.2.4</version></dependency>

就两个,短暂等待下载依赖之后发现,docx4j的依赖jar包还是挺多的:

JAVA怎么实现DOC转PDF

手动开始敲代码吧。

二、代码实现

package com.convert.test;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import org.docx4j.Docx4J;import org.docx4j.fonts.IdentityPlusMapper;import org.docx4j.fonts.Mapper;import org.docx4j.fonts.PhysicalFonts;import org.docx4j.openpackaging.exceptions.Docx4JException;import org.docx4j.openpackaging.packages.WordprocessingMLPackage;public class ConvertTest {public static void main(String[] args) {word2pdf("D:\\tran\\2.doc", "D:\\tran\\2.pdf");}public static void word2pdf(String source, String target) {try {            WordprocessingMLPackage pkg = Docx4J.load(new File(source));            Mapper fontMapper = new IdentityPlusMapper();            fontMapper.put("隶书", PhysicalFonts.get("LiSu"));            fontMapper.put("宋体", PhysicalFonts.get("SimSun"));            fontMapper.put("微软雅黑", PhysicalFonts.get("Microsoft Yahei"));            fontMapper.put("黑体", PhysicalFonts.get("SimHei"));            fontMapper.put("楷体", PhysicalFonts.get("KaiTi"));            fontMapper.put("新宋体", PhysicalFonts.get("NSimSun"));            fontMapper.put("华文行楷", PhysicalFonts.get("STXingkai"));            fontMapper.put("华文仿宋", PhysicalFonts.get("STFangsong"));            fontMapper.put("仿宋", PhysicalFonts.get("FangSong"));            fontMapper.put("幼圆", PhysicalFonts.get("YouYuan"));            fontMapper.put("华文宋体", PhysicalFonts.get("STSong"));            fontMapper.put("华文中宋", PhysicalFonts.get("STZhongsong"));            fontMapper.put("等线", PhysicalFonts.get("SimSun"));            fontMapper.put("等线 Light", PhysicalFonts.get("SimSun"));            fontMapper.put("华文琥珀", PhysicalFonts.get("STHupo"));            fontMapper.put("华文隶书", PhysicalFonts.get("STLiti"));            fontMapper.put("华文新魏", PhysicalFonts.get("STXinwei"));            fontMapper.put("华文彩云", PhysicalFonts.get("STCaiyun"));            fontMapper.put("方正姚体", PhysicalFonts.get("FZYaoti"));            fontMapper.put("方正舒体", PhysicalFonts.get("FZShuTi"));            fontMapper.put("华文细黑", PhysicalFonts.get("STXihei"));            fontMapper.put("宋体扩展", PhysicalFonts.get("simsun-extB"));            fontMapper.put("仿宋_GB2312", PhysicalFonts.get("FangSong_GB2312"));            fontMapper.put("新細明體", PhysicalFonts.get("SimSun"));            pkg.setFontMapper(fontMapper);            Docx4J.toPDF(pkg, new FileOutputStream(target));        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (Docx4JException e) {            e.printStackTrace();        } catch (Exception e) {            e.printStackTrace();        }}}

三、转换结果

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".SLF4J: Defaulting to no-operation (NOP) logger implementationSLF4J: See Http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.Using pdbs 420=7mmUsing pdbs 420=7mm

有一点报错,不过并不影响pdf的生成,打开生成的pdf,内容也是完整的。算是完成了吧,只要再写一个for循环,去遍历所有的文档就可以了。但是后来发现转换下来的pdf数量少了10个,所有的文档并没有全都转换成功。

四、后续研究

排查一番,发现这些文档中有10个doc文档,就该就是这10个没有成功了,单独拎出来转换一下,结果就报错了:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".SLF4J: Defaulting to no-operation (NOP) logger implementationSLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.org.docx4j.openpackaging.exceptions.Docx4JException: This file seems to be a binary doc/ppt/xls, not an encrypted OLE2 file containing a doc/pptx/xlsxat org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:612)at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:414)at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:287)at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:265)at org.docx4j.openpackaging.packages.WordprocessingMLPackage.load(WordprocessingMLPackage.java:168)at org.docx4j.Docx4J.load(Docx4J.java:232)at com.convert.test.ConvertTest.word2pdf(ConvertTest.java:26)at com.convert.test.ConvertTest.main(ConvertTest.java:19)

This file seems to be a binary doc/ppt/xls, not an encrypted OLE2 file containing a doc/pptx/xlsx
“此文件似乎是一个二进制文件doc/ppt/xls,而不是包含doc/pptx/xlsx的加密OLE2文件”
貌似docx4j并不能完美的支持所有的word文档,至少doc文档并不能支持。我想到之前有小伙伴也遇到过这样问题,后来说是用了永中的office转换,索性今天自己也来尝试一下。

三下五除二,一顿操作,永中office官网上的office直接就能把我的doc文档转成html展示在浏览器上,心细如尘的我,还在其官网上发现有一款“PDF工具集”的产品:

JAVA怎么实现DOC转PDF

在文章的右侧有“开发者”选项,可以直接点击它进入到转换的界面。进入之后,发现永中支持的格式还是不少的,在页面的上半部分就列出了当前支持的所有格式:

JAVA怎么实现DOC转PDF

继续向下滚动鼠标滚轮,到达文档转换的位置:

JAVA怎么实现DOC转PDF

可以直接点击上传一份doc文档,等待上传完毕,就可以直接将doc文档转换成PDF文档了,这样一来,不管多少个文件,都能一键实现word文件转换成pdf文件,小伙伴们再也不用担心了。

“JAVA怎么实现DOC转PDF”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: JAVA怎么实现DOC转PDF

本文链接: https://www.lsjlt.com/news/299607.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JAVA怎么实现DOC转PDF
    本篇内容介绍了“JAVA怎么实现DOC转PDF”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录一、下载依赖二、代码实现三、转换结果四、后续...
    99+
    2023-06-20
  • JAVA实现DOC转PDF的示例代码
    目录一、下载依赖二、代码实现三、转换结果四、后续研究五、总结Word作为目前主流的文本编辑软件之一,功能十分强大,应用人群广,但是它也存在一些问题。像是Word文件在不同软件或操作平...
    99+
    2022-11-12
  • doc怎么转换成PDF
    这篇文章主要介绍doc怎么转换成PDF,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!doc转换成PDF的方法:首先打开需要转换成pdf格式的word文档;然后点击顶部导航栏中的“文件”选项卡,选中“另存为”;接着点击...
    99+
    2023-06-14
  • Java怎么实现PDF转为线性PDF
    这篇文章主要介绍“Java怎么实现PDF转为线性PDF”,在日常操作中,相信很多人在Java怎么实现PDF转为线性PDF问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java怎么实现PDF转为线性PDF”的疑...
    99+
    2023-06-22
  • Java怎么实现Word/Pdf/TXT转html
    本篇内容介绍了“Java怎么实现Word/Pdf/TXT转html”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有...
    99+
    2022-10-19
  • Java实现将PDF转为PDF/A
    目录Jar包导入将PDF转为PDF/A通过将PDF格式转换为PDF/A格式,可保护文档布局、格式、字体、大小等不受更改,从而实现文档安全保护的目的,同时又能保证文档可读、可访问。本篇...
    99+
    2022-11-12
  • java实现html转pdf
    需求:将一个html页面转成pdf格式。 2.方法:在实现之前先考虑一个问题,pdf是前端生成还是后端生成。这里采用pdfbox+itext(PDF文件名可自定义)技术在服务端生成。 优点:免费,不需要安转软件,速度快,对于开发者而言,开发...
    99+
    2023-08-22
    java html pdf
  • Java如何实现将PDF转为PDF/A
    小编给大家分享一下Java如何实现将PDF转为PDF/A,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Jar包导入本次程序中导入的是Spire.Pdf.jar。可...
    99+
    2023-06-26
  • Java实现PDF转为线性PDF详解
    目录程序环境方法步骤步骤1. 导入PDF Jar包步骤2. 编辑如下代码将PDF转为线性PDF线性化PDF文件是PDF文件的一种特殊格式,可以通过Internet更快地进行查看。线性...
    99+
    2022-11-12
  • PHP怎么实现Word转PDF
    本篇内容介绍了“PHP怎么实现Word转PDF”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!PHP处理Word转PDF代码示例:<&n...
    99+
    2023-06-17
  • Python怎么实现Word转PDF
    这篇文章主要讲解了“Python怎么实现Word转PDF”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python怎么实现Word转PDF”吧!pdf 工具包 - pdfkitpdfkit ...
    99+
    2023-06-30
  • [Java 实现Excel转pdf ] 篇1
    目录 🔣前言: 🔣Excel转pdf 🔣进一步优化代码: 🔣进一步优化代码:  🔣依赖: 🔣前言:     加油  少年 &#...
    99+
    2023-09-21
    java excel pdf
  • Java实现pdf转图片案例
    工程加入依赖: <dependency> <groupId>org.apache.pdfbox</groupId> <art...
    99+
    2022-11-12
  • Java怎么将PDF转为Word
    这篇文章主要介绍“Java怎么将PDF转为Word”,在日常操作中,相信很多人在Java怎么将PDF转为Word问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java怎么将PDF转为Word”的疑惑有所帮助!...
    99+
    2023-06-02
  • nodejs怎么将docx转成doc
    随着科技的不断发展,我们的工作和生活中早已无法离开文档的处理。而文档处理中最为常见的文档类型就是.doc和.docx格式的文档。.docx格式的文档由于其结构复杂,常常难以处理。本文将介绍如何使用Node.js将.docx文档转换为.doc...
    99+
    2023-05-14
  • 怎么将html转换为doc
    这篇文章将为大家详细讲解有关怎么将html转换为doc,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。html有什么特点1、简易性:超级文本标记语言版本升级采用超集方式,从而更加灵活方便,适合...
    99+
    2023-06-14
  • C#怎么实现将PDF转为Excel
    这篇文章主要介绍了C#怎么实现将PDF转为Excel的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#怎么实现将PDF转为Excel文章都会有所收获,下面我们一起来看看吧。通常,PDF格式的文档能支持的编辑功能...
    99+
    2023-06-29
  • Java如何实现无损Word转PDF
    这篇文章主要介绍“Java如何实现无损Word转PDF”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java如何实现无损Word转PDF”文章能帮助大家解决问题。word转pdf实现思路代码实现主要...
    99+
    2023-07-02
  • Python怎么实现文字pdf转换图片pdf效果
    本篇内容主要讲解“Python怎么实现文字pdf转换图片pdf效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python怎么实现文字pdf转换图片pdf效果”吧!代码展示先安装依赖pip&n...
    99+
    2023-06-29
  • Java中怎么将html转为pdf
    近年来,随着数字化进程的不断推进,电子化文件的需求也越来越高。在实际工作中,我们常常需要将 HTML 文件转换为 PDF 文件,在此过程中需要使用到 Java 编程技术。本文将从以下三个方面介绍 HTML 转 PDF 的 Java 实现方法...
    99+
    2023-05-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作