jodconverter+openOffice word文档pdf转换

2024-04-12 07:36

本文主要是介绍jodconverter+openOffice word文档pdf转换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

刚好遇到了,花了几个小时时间研究了下。

第一种:POI+iText  PDFBox,试了下,效果不太行,比较差,而且有些中文以及格式不好处理

第二种:jacob 不支持linux,不考虑

第三种:aspose 收费,不考虑

第四种: jodconverter+openOffice/LibreOffice 就是我使用的这种,效果较好,兼容也可以

如下

maven依赖

<dependency><groupId>org.jodconverter</groupId><artifactId>jodconverter-local</artifactId><version>4.4.0</version></dependency>

java伪代码

// 获取openoffice管理器(服务器需要安装OpenOffice的安装目录)LocalOfficeManager localOfficeManager = LocalOfficeManager.builder().officeHome(ApplicationPropertiesUtils.getOfficeHome()).install().build();// 判断openoffice服务是否打开if(!localOfficeManager.isRunning()){localOfficeManager.start();}//文件转化(文件/流都可以)JodConverter.convert(inputStream).to(outFile).execute();// 关闭localOfficeManager服务OfficeUtils.stopQuietly(localOfficeManager);
ApplicationPropertiesUtils.getOfficeHome()换成自己的openoffice路径,比如:/opt/openoffice4
inputStream是word文档。
outFile是转换后的pdf文件

会自动匹配

也可以指定转换文件后缀

// 获取openoffice管理器(服务器需要安装OpenOffice的安装目录)LocalOfficeManager localOfficeManager = LocalOfficeManager.builder().officeHome(ApplicationPropertiesUtils.getOfficeHome()).install().build();// 判断openoffice服务是否打开if(!localOfficeManager.isRunning()){localOfficeManager.start();}ByteArrayOutputStream baos = new ByteArrayOutputStream();LocalConverter converter = LocalConverter.builder().officeManager(localOfficeManager).build();// 进行格式转换DocumentFormat extension = DefaultDocumentFormatRegistry.getFormatByExtension(suffix);converter.convert(file.getInputStream()).as(extension).to(baos).as(DefaultDocumentFormatRegistry.PDF).execute();// 关闭localOfficeManager服务OfficeUtils.stopQuietly(localOfficeManager);InputStream inputStream=new ByteArrayInputStream(baos.toByteArray());

convert(file.getInputStream()).as(extension).to(baos).as(DefaultDocumentFormatRegistry.PDF) 文件File/流都可以,后缀也可以根据自己业务处理

支持种类比较多,一般都能满足大多数需求了,源码DefaultDocumentFormatRegistry里面有各种格式的,看是否满足自己的需求

windows和服务器linux都需要安装OpenOffice,官方下载可能有点慢,需要的看下面的链接

windows:https://pan.baidu.com/s/1_dur2uG9_hzci57CMMZvEg   提取码:hi6a

Ubuntu:百度网盘 请输入提取码  提取码:m7hy

centos:百度网盘 请输入提取码   提取码:p6u9

Ubuntu安装步骤:

必须先卸载默认安装的LibreOffice,然后用deb方式的压缩包  

sudo apt-get remove --purge libreoffice*

将压缩包上传到服务器

tar -xvzf Apache_OpenOffice_4.1.15_Linux_x86-64_install-deb_zh-CN.tar.gz

cd zh-CN/DEBS/

sudo dpkg -i *.deb

cd desktop-integration/

sudo dpkg -i openoffice4.1-debian-menus_4.1.15-9813_all.deb

安装完成后在/opt/openoffice4/program/

一般不用启动,如果要启动

cd /opt/openoffice4/program/

启动可能会弹出 需要Xmanager软件来处理X11转发请求

soffice --headless --accept="socket,host=127.0.0.1,port=8100;urp;" --nofirststartwizard &

centos还没安装,测试服务器是Ubuntu

这篇关于jodconverter+openOffice word文档pdf转换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/896506

相关文章

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

pdfmake生成pdf的使用

实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdfmake生成pdf文件 1.下载安装pdfmake第三方包 npm i pdfma

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

C - Word Ladder题解

C - Word Ladder 题解 解题思路: 先输入两个字符串S 和t 然后在S和T中寻找有多少个字符不同的个数(也就是需要变换多少次) 开始替换时: tips: 字符串下标以0开始 我们定义两个变量a和b,用于记录当前遍历到的字符 首先是判断:如果这时a已经==b了,那么就跳过,不用管; 如果a大于b的话:那么我们就让s中的第i项替换成b,接着就直接输出S就行了。 这样

PDF 软件如何帮助您编辑、转换和保护文件。

如何找到最好的 PDF 编辑器。 无论您是在为您的企业寻找更高效的 PDF 解决方案,还是尝试组织和编辑主文档,PDF 编辑器都可以在一个地方提供您需要的所有工具。市面上有很多 PDF 编辑器 — 在决定哪个最适合您时,请考虑这些因素。 1. 确定您的 PDF 文档软件需求。 不同的 PDF 文档软件程序可以具有不同的功能,因此在决定哪个是最适合您的 PDF 软件之前,请花点时间评估您的

C# double[] 和Matlab数组MWArray[]转换

C# double[] 转换成MWArray[], 直接赋值就行             MWNumericArray[] ma = new MWNumericArray[4];             double[] dT = new double[] { 0 };             double[] dT1 = new double[] { 0,2 };

解决Office Word不能切换中文输入

我们在使用WORD的时可能会经常碰到WORD中无法输入中文的情况。因为,虽然我们安装了搜狗输入法,但是到我们在WORD中使用搜狗的输入法的切换中英文的按键的时候会发现根本没有效果,无法将输入法切换成中文的。下面我就介绍一下如何在WORD中把搜狗输入法切换到中文。

Python脚本:TXT文档行数统计

count = 0 #计数变量file_dirs = input('请输入您要统计的文件根路径:')filename = open(file_dirs,'r') #以只读方式打开文件file_contents = filename.read() #读取文档内容到file_contentsfor file_content in file_contents:

bcolz文档

原文:http://bcolz.blosc.org/en/latest/reference.html First level variables bcolz.__version__'''bcolz包的版本。''' bcolz.dask_here'''是否检测到dask的最低版本。''' bcolz.min_dask_version'''需要dask的最低版本(dask是可选