jodconverter 2.2.2 +openoffice4.0 doc转换成pdf

2023-05-16

一、环境
linux下安装openoffice
1、首先先下载好需要的rpm包: Apache_OpenOffice_4.0.0_Linux_x86-64_install-rpm_zh-CN.tar.gz
或直接命令下载:wget http://heanet.dl.sourceforge .NET /project/openofficeorg.mirror/4.0.0/binaries/zh-CN/Apache_OpenOffice_4.0.0_Linux_x86-64_install-rpm_zh-CN.tar.gz
放到服务器的目录下(我放到了opt下)
2、将下载的openoffice解压(我直接解压到opt目录):tar -zxvf Apache_OpenOffice_4.0.0_Linux_x86-64_install-rpm_zh-CN.tar.gz
3、解压后生成文件夹zh-CN 进到RPMS目录下,直接yum localinstall *.rpm
4、再装RPMS/desktop-integration目录下的openoffice4.0-redhat-menus-4.0-9702.noarch.rpm:yum localinstall openoffice4.0-redhat-menus-4.0-9702.noarch.rpm
5、安装完成直接启动Openoffice服务:
临时启动   /opt/openoffice4/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard一直后台启动 nohup  /opt/openoffice4/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &
6、查看服务是否启动(端口8100是否被soffice占用):netstat -lnp |grep 8100
显示结果:tcp        0      0 127.0.0.1:8100              0.0.0.0:*                   LISTEN      19501/soffice.bin
7、因为一般安装完后openoffice在转换pdf时候会因为确实字体造成中文乱码情况,所有一般要将window下的字体库打包拷贝到linux服务器上。
(1)查看系统字体文件cat /etc/fonts/fonts.conf
(2) 将window下的字符库上传到linux下。一般是在 /usr/share/fonts目录下,创建fonts目录。
(3) 执行fc-cache。
(4)重启openoffice。
大功告成!!!
二、项目配置
maven的pom的配置
<!-- jodconverter-->
<dependency>
<groupId>com.artofsolving</groupId>
<artifactId>jodconverter</artifactId>
<version>2.2.1</version>
</dependency>
<!-- openoffice -->
<dependency>
<groupId>org.openoffice</groupId>
<artifactId>ridl</artifactId>
<version>4.1.2</version>
</dependency>
项目部署的时候要将jodconverter换成2.2.2版本。因为maven中央仓库没有2.2.2版本。使用2,2,2版本的原因:2,2,1版本不支持xlsx、docx、pptx格式的文档转换pdt。
/**
* 将文件转换成pdf文件
* @param filepath doc文件存放位置
* @return
*/
public static boolean doc2pdf(String filepath){
boolean result=false;
String filename=filepath.substring(0, filepath.lastIndexOf("."));
String filetype=filepath.substring(filepath.lastIndexOf(".")+1);
File file=null;
String os=System.getProperties().getProperty("os.name");
//如果当txt文档转换的时候,因为windows下的编码和linux下的文件编码格式不一样会造成 // 中文乱码所有要将txt文件转成utt-8格式的odt文件。
if(!os.toLowerCase().startsWith("win") && "txt".equals(filetype.toLowerCase())){
String odt="iconv -f gb2312 -t utf-8 "+filename+".txt -c -s -o "+filename+".odt";
try {
Process pro=Runtime.getRuntime().exec(odt);
pro.waitFor();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
file=new File(filename+".odt");
}else{
file=new File(filepath);
}
File pdfFile=new File(filename+".pdf");
System.out.println(filetype);
if(file.exists()){
if(!pdfFile.exists()){
//openOffoceAddress是openoffice安装目录
String command=Constant.openOffoceAddress+"program/soffice -headless -accept=\"socket,host=127.0.0.1,port=8100;urp;\"";
try {
Runtime.getRuntime().exec(command);
OpenOfficeConnection connection=new SocketOpenOfficeConnection("127.0.0.1",8100);
connection.connect();
DocumentConverter converter=new OpenOfficeDocumentConverter(connection);
converter.convert(file,pdfFile);
connection.disconnect();
System.out.println("****pdf转换成功,PDF输出:"+pdfFile.getPath()+"****");
result=true;
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
System.out.println(file.getName()+"pdf转换失败");
}
}
}
return result;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jodconverter 2.2.2 +openoffice4.0 doc转换成pdf 的相关文章

  • 在 Linux 服务器上创建和编辑 MS-Word 文档?

    希望开发处理文档的服务器端应用程序 源文档大多是MS Word 2003 2007 即MS版本的Docx 希望服务器应用程序能够在linux或windows上运行 想知道在linux下读写MS Word文件最好的工具或库是什么 兼容性是最重
  • java中的csv到pdf文件

    我正在尝试获得一个csv文件解析为pdf 到目前为止我所拥有的内容附在下面 我的问题是这段代码最终出现在 pdf 中的文件在 csv 文件的第一行被截断 我不明白为什么 附示例 本质上我想要一个没有任何操作的 csv 文件的 pdf 版本
  • .doc 格式如何工作?

    我最近了解了 docx 文件的基本结构 它是一个特殊结构的 zip 存档 但是 docx 的格式与 doc 不同 doc 文件如何工作 文件格式 结构等是什么 这不是对你的问题的直接回答 但我强烈建议阅读 Joel Spolsky 的文章
  • PDF:在现有 PDF 文件中插入一行文本

    我有一个 PDF 文件 我希望在所有页面 前两页除外 的页脚上添加一行纯文本 不是徽标或类似内容 有谁有一个如何做到这一点的例子 用任何语言 Update 原始 PDF 是用 Scribus 制作的 我可以完全控制它 因此 如果更容易进行查
  • PDFTron。 FreeText 注释字体

    我需要从以下位置获取字体信息 字体系列 颜色等 FreeText在 Net 中使用 PDFTron 进行注释 而我只看到FreeText GetFontSize方法 如何获取字体信息FreeText注解 如果存在外观流 则使用 E leme
  • 在 iOS 上将 SwiftUI 视图转换为 PDF

    我用 SwiftUI 画了一些漂亮的图表 因为它非常简单且容易做 然后我想将整个 SwiftUI 视图导出为 PDF 以便其他人可以以良好的方式查看图表 SwiftUI 没有直接为此提供解决方案 Cheers Alex 经过一番思考 我想到
  • Android 中的列表视图到 pdf

    我有一个自定义列表视图 我想从整个列表视图制作pdf 我参考了很多帖子并实现了下面的代码 该代码将我的列表视图转pdf 但问题是它不包含整个列表视图项目 pdf 中仅提供前几项 我的转换函数列表视图转pdf is fab setOnClic
  • 为什么 Internet Explorer 无法使用 NodeJS 和 Express 下载 PDF?

    我正在使用 NodeJS 构建一个网站 需要提供一些 PDF 以及其他文件 由于我无法确定的原因 Internet Explorer 8 第一次无法在 Acrobat Viewer 中完全下载 PDF 有时此后多次 直接保存文件效果很好 但
  • Android - 使用 Intent 打开 PDF 文档关闭后不保存

    我面临的问题是 当尝试保存对使用此 URI 打开的 PDF 文档的更改时内容 xx xxx xxx fileprovider external Download Sync FileName pdf 我所做的任何更改在关闭文档后都不会保存 但
  • 内容处置:ASP.Net 中的内联 PDF 文件不起作用

    我正在尝试将带有标题的 PDF 文件返回到浏览器Content Dispostion inline就在我创建这个文件之后 浏览器的查看者无法打开它 文件没有损坏 如果我放入浏览器 查看器会正确显示文件 但我想一次性创建文件并检查用户对文件的
  • 如何使用 javascript 将 Html 页面转换为 PDF [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个java应用程序 它在网页中查看很少的结果 我想将这些结果保存到PDF文件中 用户单击 导出到PDF 按钮 任何人都可以帮助我使用
  • 大虾如何生成目录?

    有没有一种简单的方法来生成带有相应页面链接的目录 在最近版本的虾中 是的 查看 API 示例的 Examples general outlines rb 示例 See http prawnpdf org manual pdf http pr
  • JsPdf 库无法读取 PDF 中的阿拉伯语

    在 pdf 中显示阿拉伯值的代码不起作用 它向我展示了一些我无法理解的奇怪语言 var sm nature name nature1 ar 1 name nature2 ar 2 name nature3 ar 3 name nature4
  • 是否可以使用“pandoc”将 .tex 文件编译为 PDF?

    是否可以使用 pandoc 编译 tex 文件 我目前正在使用 MacVim 在 MultiMarkdown 中记课堂笔记 这样 当我回到家时 我就可以mmd2tex并使用 TexShop 将 tex 文件编译为 PDF 它效果很好 但这个
  • 如何将div内容添加到jspdf中的新页面?

    如何将div内容添加到jspdf中的新页面 我尝试使用 br 它创建了一个新页面 但我看不到内容 div div style margin 3px 430px First Page div div Place content to Seco
  • TCPDF UTF-8 符号未显示

    我使用最新的 TCPDF 版本 5 9 但在编码方面遇到一些奇怪的问题 我需要立陶宛语语言符号 例如 但只能得到其中的一小部分 其他的还是这样 所以我该怎么做 我使用默认的 times 字体 它带有 TCPDF 下载 任何帮助 将不胜感激
  • 创建 PDF/A-3:嵌入文件应包含有效的 Params 密钥

    我正在尝试使用 itextpdf 5 4 5 和 itext pdfa 5 4 5 创建 PDF A 3 当我设置 PdfFileSpecification 时 出现以下异常 com itextpdf text pdf PdfAConfor
  • 在 C# WinForms 中预览文档(Word、Excel、PDF、文本文件等)?

    我正在开发一个 C WinForms 应用程序 我希望能够 预览 其中的各种文档类型 也就是说 当用户从列表中选择文件名时 它会在下面以相同的形式显示所选文件的预览 这很像 Outlook 允许您无需双击即可预览选定邮件的方式 有没有什么方
  • 检测文本字段溢出

    假设我有一个 PDF 文档 其中的文本字段定义了某种字体和大小 有没有办法确定某些文本是否适合字段矩形内PDFBox 我试图避免文本未完全显示在字段内的情况 因此 如果给定字体和大小的文本溢出 我想将字体大小更改为Auto 0 此代码重新创
  • USB 上的 Autorun.inf 可以让它运行 pdf 吗?

    我在网上做了一些研究 我想我只是在寻找构象 由于 Microsoft 如何在 Vista 及更高版本中对自动运行设置安全性 从 USB 自动运行不再起作用 正确的 看起来它仍然会显示运行 exe 的选项 但由于某些奇怪的原因我无法让它运行

随机推荐

  • git 远程代码回滚master

    一 本地回滚 git reset 回退内容到上一个版本 就像现在的自己为成年人 xff0c 想要回退到童年 xff0c 直接用gitreset命令 xff0c 直接回退到小时候 git reset hard 22f8aae 22f8aae
  • Springboot 解决跨域的四种姿势

    实现 WebMvcConfigurer addCorsMappings 的方法 import org springframework context annotation Configuration import org springfra
  • mysql按某一字段分组取最大(小)值所在行的数据

    表结构脚本 xff1a CREATE TABLE 96 student grade 96 96 id 96 int 11 NOT NULL AUTO INCREMENT 96 name 96 varchar 64 DEFAULT NULL
  • 打包jar读不到.jks文件解决方法

    Maven 仓库获取地址 xff1a http mvnrepository com artifact commons io commons io lt https mvnrepository com artifact commons io
  • 通过Nginx反向代理实现IP访问分流

    根据特定IP来实现分流 将IP地址的最后一段最后一位为0或2或6的转发至test 01 com来执行 xff0c 否则转发至test 02 com来执行 upstream test 01 com server 192 168 1 100 8
  • nginx map 妙用

    worker processes auto stream map remote addr dynamic backend 02468 34 test1 34 ip最后一位是偶数 13579 34 test2 34 ip最后一位是奇数 一个正
  • shell脚本通过mysql获取数据

    数据库查询结果 xff0c 结果为每行从左到右每个单元格为一行 xff08 首行为SQL查询结果的列名 xff09 数组默认分割符号是空格 xff0c 当查询结果中包含空格字符时 xff0c 会导致一个字段被分割开 xff0c 例如 xff
  • Activemq Artemis jmx使用

    1 修改 目录 mybroker etc broker xml 修改 lt name gt myartemis lt name gt 后面会用 加入2行 lt jmx management enabled gt true lt jmx ma
  • SpringBoot设置mysql的ssl连接

    因工作需要 xff0c mysql连接需要开启ssl认证 xff0c 本文主要讲述客户端如何配置ssl连接 SpringBoot xff1a 2 0 5 RELEASEmysql connector java xff1a 8 0 18mys
  • ThinkPHP URL路由解析

    ThinkPHP是国内非常火的一个轻量级框架 xff0c 采用MVC模式 xff0c 结构写的非常好 xff0c 今天 大象 带大家走一下ThinkPHP框架系统运行流程 xff0c 我将跟随ThinkPHP的执行进行代码讲解 xff0c
  • 【gRPC】双向认证下grpc-gateway原理及简单使用

    文章目录 前言一 grpc gateway原理二 环境准备三 服务端改造四 总结 前言 在上一篇文章自签CA 服务端和客户端双向认证中 xff0c 我们了解了双向认证并进行了实践 xff0c 本篇文章将基于双向认证 xff0c 使用gRPC
  • php 装饰模式

    lt php abstract class component public abstract function operation class concretecomponent extends component public func
  • Beyond Compare在Mac OS系统下永久试用

    亲测可用 一 原理 Beyond Compare每次启动后会先检查注册信息 xff0c 试用期到期后就不能继续使用 解决方法是在启动前 xff0c 先删除注册信息 xff0c 然后再启动 xff0c 这样就可以永久免费试用了 二 下载 首先
  • RSA加密解密(PHP Demo)

    private key 61 39 BEGIN RSA PRIVATE KEY MIICXQIBAAKBgQDpoODVtnSztGyb p 43 g Ob36jb3jzWzS2qovOjpY rrTjwlVcQ pB2m1nZDQNpTF
  • 【Pandas】优化读取文件内存占用过大的问题

    编写于2022 11 6 1 内存占用计算 做了个小实验 xff0c 发现pandas读取文件时 xff0c 内存占用是真的高 xff1a span class token keyword import span sys span clas
  • springboot+chatgpt+chatUI Pro开发智能聊天工具

    应广大网友要求 xff0c 也为了节约大家的时间现为大家奉献上源码下载地址 xff1a https download csdn net download xiangyuanhong08 87708197源码下载后在IDEA导入项目后自己修改
  • dockerfile指令解析

    Dockerfile 是一个文本文件 xff0c 其内包含了一条条的指令 Instruction xff0c 用于构建镜像 指令集描述FROM指定基础镜像 xff0c 必须为第一个命令MAINTAINER维护者信息RUN构建镜像 docke
  • openEuler社区人才评定考试流程指引

    最近因为公司工作的需要参加考试了openEuler社区人才评定考试 xff0c 本次考试题型主要包括单选 多选 判断三类题型 考试内容基本都是操作系统使用相关的内容 考试需要注意事项 xff1a 1 考试为线上答题考试 xff0c 需开启摄
  • spire.doc 让java操作word文档更简单优雅

    Spire Doc for Java 是一款专业的 Java Word 组件 xff0c 开发人员使用它可以轻松地将 Word 文档创建 读取 编辑 转换和打印等功能集成到自己的 Java 应用程序中 作为一款完全独立的组件 xff0c S
  • jodconverter 2.2.2 +openoffice4.0 doc转换成pdf

    一 环境 linux下安装openoffice 1 首先先下载好需要的rpm包 xff1a Apache OpenOffice 4 0 0 Linux x86 64 install rpm zh CN tar gz 或直接命令下载 xff1