使用 docker部署spring boot项目中word转pdf-----jodconverter4.1.0,libreoffice,

本文主要是介绍使用 docker部署spring boot项目中word转pdf-----jodconverter4.1.0,libreoffice,,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

因为项目需要原因,将word转为pdf。开始选择了pio的一些插件:org.apache.poi.xwpf.converter.pdf但是发现有转换的时候有数据丢失的问题还出现了版本不兼容的问题。后来使用了com.documents4j这个的插件,但是发现它仅仅适合windos环境。然后放弃了( 如果你也想试试请看https://stackoverflow.com/questions/43363624/converting-docx-into-pdf-in-java)。后来直接就放弃了。

也可以使用这个破解版的工具:https://www.cnblogs.com/qiwu1314/p/6101400.html

选择了使用libreoffice进行转换,但是这个是ocal方式是本地启动libreoffice,然后使用uno进行编程,操作本地的office。所以我想把libreoffice放在docker镜像中,制作基础镜像。然后以此镜像为基础再制作spring boot镜像环境。

centos镜像------安装jdk--》centos-jdk镜像 -----安装libreoffice--》centos-jdk-lib镜像  ---部署jar包--->run 项目

现象开始了

1.centos-jdk镜像获取

      可以直接再docker仓库中查找:https://hub.docker.com/_/microsoft-java-jdk?tab=description

我选择的是:mcr.microsoft.com/java/jdk:11u3-zulu-centos 这个的镜像;

2制作centos-jdk-lib镜像:DockerFile:https://blog.csdn.net/luslin1711/article/details/87644899

FROM mcr.microsoft.com/java/jdk:11u3-zulu-centos
MAINTAINER "shilin@datahorizon.cn"RUN  yum install libreoffice-writer.x86_64 -y  \&& yum groupinstall "Fonts" -y  \&& yum groupinstall "Input Methods" -y \&&  rm -rf /etc/localtime \&& ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& yum -y install kde-l10n-Chinese \&& yum -y reinstall glibc-common && localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 \&& yum clean all 
ENV LC_ALL zh_CN.utf8

新建一个空白文件夹,名字随意,将 Dockerfile 移到这里,然后执行

docker build -t centos-jdk-lib:01 .

等待执行完成,查看当前拥有的镜像,执行镜像是否成功

docker images

3,以centos-jdk-lib为基础镜像发布jar

FROM centos-jdk-lib:01
MAINTAINER Cfmoto fangwenfei<1334225082>ADD ./jar/centos-0.0.1-SNAPSHOT.jar /app/
CMD ["java", "-Xmx1000m", "-jar","/app/centos-0.0.1-SNAPSHOT.jar"]
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
EXPOSE 9300

然后创建镜像

docker build -t centos-jdk-lib-jar:01 .

然后执行run 镜像

docker run -d  -v ~/file_dir/:/data  -p 9600:9300  centos-jdk-lib-jar:01

然后你发现这个docker里面有成功了。

对了spring 使用的是jodconverter;你可以查看:https://www.jianshu.com/p/84cefb25efde

jodconverter:local:enabled: true# 设置LibreOffice主目录office-home: /usr/lib64/libreoffice/# 开启多个LibreOffice进程,每个端口对应一个进程portNumbers: 8100,8101,8102# LibreOffice进程重启前的最大进程数maxTasksPerProcess: 100working-dir:

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

也可以直接整再一起

FROM mcr.microsoft.com/java/jdk:11u3-zulu-centos
MAINTAINER "shilin@datahorizon.cn"RUN  yum install libreoffice-writer.x86_64 -y  \&& yum groupinstall "Fonts" -y  \&& yum groupinstall "Input Methods" -y \&&  rm -rf /etc/localtime \&& ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& yum -y install kde-l10n-Chinese \&& yum -y reinstall glibc-common && localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 \&& yum clean all 
ENV LC_ALL zh_CN.utf8
ADD ./jar/centos-0.0.1-SNAPSHOT.jar /app/
CMD ["java", "-Xmx1000m", "-jar","/app/centos-0.0.1-SNAPSHOT.jar"]
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
EXPOSE 9300

------------------------------------------------------------------------------杂碎的东西不要看的------------------------------------------------------

http://mirrors.ustc.edu.cn/tdf/libreoffice/stable/6.2.4/rpm/x86_64/wget http://mirrors.ustc.edu.cn/tdf/libreoffice/stable/6.2.4/rpm/x86_64/LibreOffice_6.2.4_Linux_x86-64_rpm.tar.gz
wget http://mirrors.ustc.edu.cn/tdf/libreoffice/stable/6.2.4/rpm/x86_64/LibreOffice_6.2.4_Linux_x86-64_rpm_sdk.tar.gz
wget http://mirrors.ustc.edu.cn/tdf/libreoffice/stable/6.2.4/rpm/x86_64/LibreOffice_6.2.4_Linux_x86-64_rpm_langpack_zh-CN.tar.gzmkdir /usr/libreoffice
tar -zxvf LibreOffice_6.2.4_Linux_x86-64_rpm.tar.gz -C /usr/libreoffice/
tar -zxvf LibreOffice_6.2.4_Linux_x86-64_rpm_sdk.tar.gz -C /usr/libreoffice/
tar -zxvf  LibreOffice_6.2.4_Linux_x86-64_rpm_langpack_zh-CN.tar.gz   -C /usr/libreoffice/cd /usr/libreoffice/LibreOffice_6.2.4_Linux_x86-64_rpm_langpack_zh-CN/RPMSsoffice --headless --convert-to pdf /home/liboffice/mm/3.docxmvn install package  -Dmaven.test.skip=truefind / -name filedocker exec -it 2dce4425a259   /bin/bashmkdir /usr/libreoffice
tar -zxvf LibreOffice_6.2.4_Linux_x86-64_rpm.tar.gz -C /usr/libreoffice/
tar -zxvf LibreOffice_6.2.4_Linux_x86-64_rpm_sdk.tar.gz -C /usr/libreoffice/
tar -zxvf  LibreOffice_6.2.4_Linux_x86-64_rpm_langpack_zh-CN.tar.gz   -C /usr/libreoffice/cd /usr/libreoffice/LibreOffice_6.2.4_Linux_x86-64_rpm_langpack_zh-CN/RPMSsoffice --headless --convert-to pdf /home/liboffice/mm/3.docxsoffice --headless --convert-to pdf  /data/CF800AU-2A正反面普通.docxsudo   nohup java -jar centos-0.0.1-SNAPSHOT.jar --server.port=9300 &sudo    source /etc/profile; nohup java -jar ...docker run -it -v ~/file_dir/:/data libreoffice:05 bashdocker run -it -v ~/file_dir/:/data libreoffice:01 bashdocker run -d -p 9300:9300 libreoffice:05docker run -d  -v ~/file_dir/:/data  -p 9300:9300 libreoffice:04docker pull liboffice6.1-java8:latest docker pull mcr.microsoft.com/java/jdk:8u212-zulu-centosdocker run -it -v ~/file_dir/:/data libreoffice-centos-jdk:1all bashdocker run -d  -v ~/file_dir/:/data  -p 9600:9300  libreoffice-centos-jdk:1all

 

这篇关于使用 docker部署spring boot项目中word转pdf-----jodconverter4.1.0,libreoffice,的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

SpringBoot全局域名替换的实现

《SpringBoot全局域名替换的实现》本文主要介绍了SpringBoot全局域名替换的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录 项目结构⚙️ 配置文件application.yml️ 配置类AppProperties.Ja

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

C#实现一键批量合并PDF文档

《C#实现一键批量合并PDF文档》这篇文章主要为大家详细介绍了如何使用C#实现一键批量合并PDF文档功能,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言效果展示功能实现1、添加文件2、文件分组(书签)3、定义页码范围4、自定义显示5、定义页面尺寸6、PDF批量合并7、其他方法

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo