当前位置: 首页 > news >正文

SpringBoot、JAVA中excel、rtf、doc转PDF

话不多说,直接上干货

// 官方文档的要求 无需理会public static boolean getLicense() {boolean result = false;try {String s = "<License><Data><Products><Product>Aspose.Total for Java</Product><Product>Aspose.Words for Java</Product></Products><EditionType>Enterprise</EditionType><SubscriptionExpiry>20991231</SubscriptionExpiry><LicenseExpiry>20991231</LicenseExpiry><SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber></Data><Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature></License>";ByteArrayInputStream is = new ByteArrayInputStream(s.getBytes());License aposeLic = new License();aposeLic.setLicense(is);result = true;} catch (Exception e) {e.printStackTrace();}return result;}

doc转PDF

/*** @param inputStream  源文件输入流* @param outputStream pdf文件输出流**/public static boolean doc2pdf(InputStream inputStream, OutputStream outputStream) {// 验证License 若不验证则转化出的pdf文档会有水印产生if (!getLicense()) {return false;}try {// 将源文件保存在com.aspose.words.Document中,具体的转换格式依靠里面的save方法com.aspose.words.Document doc = new com.aspose.words.Document(inputStream);// 全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF,EPUB, XPS, SWF 相互转换doc.save(outputStream, SaveFormat.PDF);} catch (Exception e) {e.printStackTrace();return false;}finally {if (outputStream != null) {try {outputStream.flush();outputStream.close();} catch (IOException e) {e.printStackTrace();}}}return true;}

excel转PDF

/*** @param inputStream  源文件输入流* @param outputStream pdf文件输出流**/public static boolean excelToPdf(InputStream inputStream, OutputStream outputStream) {// 验证License 若不验证则转化出的pdf文档会有水印产生if (!getLicense()) {return false;}try {com.aspose.cells.Workbook wb = new com.aspose.cells.Workbook(inputStream);// 原始excel路径com.aspose.cells.PdfSaveOptions pdfSaveOptions = new com.aspose.cells.PdfSaveOptions();pdfSaveOptions.setOnePagePerSheet(false);int[] autoDrawSheets={3};//当excel中对应的sheet页宽度太大时,在PDF中会拆断并分页。此处等比缩放。autoDraw(wb,autoDrawSheets);int[] showSheets={0};//隐藏workbook中不需要的sheet页。printSheetPage(wb,showSheets);wb.save(outputStream, pdfSaveOptions);outputStream.flush();outputStream.close();} catch (IOException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}return true;}

RTF转PDF

/*** @param inputStream  源文件输入流* @param outputStream pdf文件输出流**/public static boolean rtfToPdf(InputStream inputStream, OutputStream outputStream) {// 验证License 若不验证则转化出的pdf文档会有水印产生if (!getLicense()) {return false;}try {// 将源文件保存在com.aspose.words.Document中,具体的转换格式依靠里面的save方法com.aspose.words.Document doc = new com.aspose.words.Document(inputStream);// 全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF,EPUB, XPS, SWF 相互转换doc.save(outputStream, SaveFormat.PDF);} catch (IOException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}return true;}

其中依赖的方法

/*** 设置打印的sheet 自动拉伸比例* @param wb* @param page 自动拉伸的页的sheet数组*/public static void autoDraw(com.aspose.cells.Workbook wb,int[] page){if(null!=page&&page.length>0){for (int i = 0; i < page.length; i++) {wb.getWorksheets().get(i).getHorizontalPageBreaks().clear();wb.getWorksheets().get(i).getVerticalPageBreaks().clear();}}}/*** 隐藏workbook中不需要的sheet页。** @param wb* @param page 显示页的sheet数组*/public static void printSheetPage(com.aspose.cells.Workbook wb, int[] page) {for (int i = 1; i < wb.getWorksheets().getCount(); i++) {wb.getWorksheets().get(i).setVisible(false);}if (null == page || page.length == 0) {wb.getWorksheets().get(0).setVisible(true);} else {for (int i = 0; i < page.length; i++) {wb.getWorksheets().get(i).setVisible(true);}}}

其中需要依赖一些jar包,在这里

相关文章:

SpringBoot、JAVA中excel、rtf、doc转PDF

话不多说&#xff0c;直接上干货 // 官方文档的要求 无需理会public static boolean getLicense() {boolean result false;try {String s "<License><Data><Products><Product>Aspose.Total for Java</Product><Product>Aspose.Wo…...

生信技能45 - 基于docker容器运行生信软件

1. 获取docker镜像 以运行xhmm CNV分析软件为例。 # 搜索仓库镜像 sudo docker search xhmm# 拉取镜像 sudo docker pull ksarathbabu/xhmm_v1.0# 启动镜像,非后台 sudo docker run -it ksarathbabu/xhmm_v1.0 /bin/bash # -i: 交互式操作。 # -t: 终端。 # ksarathbabu/xhmm…...

算法训练营第63天|LeetCode 84.柱状图中最大的矩形

完结&#xff01;撒花&#xff01; LeetCode 84.柱状图中最大的矩形 题目链接&#xff1a; LeetCode 84.柱状图中最大的矩形 代码&#xff1a; class Solution { public:int largestRectangleArea(vector<int>& heights) {heights.insert(heights.begin(),0);he…...

python跟C++选哪个?

选择使用Python还是C取决于你的具体需求和项目背景。我这里有一套编程入门教程&#xff0c;不仅包含了详细的视频讲解&#xff0c;项目实战。如果你渴望学习编程&#xff0c;不妨点个关注&#xff0c;给个评论222&#xff0c;私信22&#xff0c;我在后台发给你。 在通信工程行业…...

速锐得深入解析吉利几何CAN总线数据通信网络的拓扑层级框架技术

在现代汽车工业中&#xff0c;车辆的电子控制单元&#xff08;ECU&#xff09;之间的通信至关重要。这种通信大多通过控制器局域网络&#xff08;CAN&#xff09;总线实现&#xff0c;它是德国BOSCH公司于20世纪80年代初开发的一种串行数据通信协议。随着技术的不断进步&#x…...

数据分析的数据模型

数据分析的数据模型 前言一、优化模型1.1线性优化模型1.1.1线性优化模型定义1.1.2线性优化模型求解算法1. 1.2.1图解法1. 1.2.2. 单纯形法 1.1.3 线性优化模型的应用 1.2非线性优化模型1.2.1非线性优化模型定义1.2.2非线性优化划模型求解方法1. 2.2.1有约束非线性模型算法1.2.2…...

SQL注入-通达OA SQL注入漏洞【CVE-2023-4166】原理及检测思路分析

1、漏洞描述 通达OA中发现一个漏洞&#xff0c;并被列为严重漏洞。该漏洞影响文件general/system/seal_manage/dianju/delete_log.php的未知代码。对参数 DELETE_STR 的操作会导致 sql 注入。 2、影响范围 通达OA版本11.10之前 3、复现环境 FOFA搜索&#xff1a;app"TDX…...

数据结构(七)复杂度渐进表示

数据结构&#xff08;七&#xff09;复杂度渐进表示 要点&#xff1a;复杂度相加取较大值&#xff0c;嵌套取二者乘积 思考&#xff1a;为什么只需要知道复杂度的趋势就可以了&#xff1f; 01 复杂度的渐进表示法 Ω复杂度渐进表示法区分复杂度T(n)的上界&#xff08;o&…...

3d如何同时贴两个图在模型上?---模大狮模型网

在3D设计中&#xff0c;为模型贴上纹理或图案是常见的操作&#xff0c;可以使模型更加逼真和生动。然而&#xff0c;有时候我们需要在同一个模型上同时贴上两个不同的图案&#xff0c;这可能会对初学者构成一定的挑战。在本文中&#xff0c;我们将分享一些简单而有效的方法&…...

【全开源】Java同城预约月嫂服务上门服务本地服务源码APP+小程序+公众号+H 5

智能匹配与推荐&#xff1a;源码运用先进的算法和定位技术&#xff0c;根据用户的需求和地理位置&#xff0c;智能匹配并推荐附近的合适月嫂。这种匹配不仅基于地理位置&#xff0c;还考虑了月嫂的技能、经验、评价等因素&#xff0c;确保服务的质量和可靠性。 在线预约与支付…...

汇聚荣科技:拼多多开店时后期押金可以退吗?

在电商领域&#xff0c;拼多多以其独特的团购模式迅速崛起&#xff0c;吸引了众多商家入驻。对于这些商家而言&#xff0c;了解平台的各项费用政策尤为重要&#xff0c;其中押金的退还问题是大家关注的焦点之一。那么&#xff0c;拼多多开店时后期押金可以退吗?答案是肯定的。…...

【机器学习与实现】K近邻算法

目录 一、KNN算法简介&#xff08;一&#xff09;KNN算法包括三个步骤&#xff08;二&#xff09;超参数K的影响 二、距离度量三、邻近点的搜索算法四、KNN算法的特点五、KNN常用的参数及其说明六、分类算法的性能度量&#xff08;一&#xff09;混淆矩阵及相关概念&#xff08…...

【Python探索之旅】初识Python

目录 发展史&#xff1a; 环境安装&#xff1a; 入门案例&#xff1a; 变量类型 标准数据类型 数字类型&#xff1a; 字符串&#xff1a; 全篇总结&#xff1a; 前言&#xff1a; Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设…...

MongoDB和AI 赋能行业应用:制造业和汽车行业

欢迎阅读“MongoDB和AI 赋能行业应用”系列的第一篇。 本系列重点介绍AI应用于不同行业的关键用例&#xff0c;涵盖制造业和汽车行业、金融服务、零售、电信和媒体、保险以及医疗保健行业。 随着人工智能&#xff08;AI&#xff09;在制造业和汽车行业的集成&#xff0c;传统…...

FileZilla一款免费开源的FTP软件,中文正式版 v3.67.0

01 软件介绍 FileZilla 客户端是一个高效且可信的跨平台应用程序&#xff0c;支持 FTP、 FTPS 和 SFTP 协议&#xff0c;其设计宗旨在于为用户提供一个功能丰富且直观的图形界面。此客户端的核心特性包括一个站点管理器&#xff0c;该管理器能有效地存储和管理用户连接详情及登…...

44.WEB渗透测试-信息收集-域名、指纹收集(6)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a; web指纹&#xff1a; 每一个网站&#xff0c;前端开发语言&#xff0c;后端语言&#…...

【面经】Linux

一、高频 1、Linux常见的指令 路径/目录类 cd, mkdir, rmdir, pwd &#xff0c;ls等重要指令&#xff1b;rmdir 仅能删除空目录&#xff0c;要删除非空目录需使用“ rm -r ”指令&#xff1b;文件类 创建&#xff1a;mkdir文件夹&#xff0c;touch文件移动mv复制cp修改名字mv…...

TriCore:Interrupt 2

今天继续来看看 IR 模块。 名词缩写 缩写全称说明IRInterrupt Router SRService Request 包括&#xff1a; 1. External Resource 2. Internal Resource 3.SW&#xff08;Software&#xff09; SPService Privoder 包括&#xff1a; 1. CPU 2. DMA SRNService Request NodeS…...

ollama api只能局域网访问,该怎么破?

安装ollama: ollama离线安装,在CPU运行它所支持的那些量化的模型-CSDN博客文章浏览阅读178次,点赞2次,收藏6次。ollama离线安装,在CPU运行它所支持的哪些量化的模型 总共需要修改两个点,第一:Ollama下载地址;第二:Ollama安装包存放目录。第二处修改,修改ollama安装目…...

规则引擎drools Part5

规则引擎drools Part5 Drools Workbench Drools Workbench是可视化的规则编辑器&#xff0c;用来授权和管理业务规则。workbench的war包下载地址&#xff0c;安装到tomcat中就可以运行了。使用workbench可以在浏览器中创建数据对象、规则文件、测试场景并把规则部署到maven仓…...

钉钉机器人消息解析器:基于JSON Path与模板的自动化数据提取方案

1. 项目概述&#xff1a;一个钉钉消息解析器的诞生最近在做一个内部自动化工具时&#xff0c;遇到了一个挺有意思的需求&#xff1a;需要把钉钉机器人推送过来的消息&#xff0c;从原始的、结构复杂的JSON格式里&#xff0c;精准地“抠”出我们关心的业务数据。比如&#xff0c…...

终极GTA5安全增强菜单:YimMenu完全使用指南

终极GTA5安全增强菜单&#xff1a;YimMenu完全使用指南 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu Y…...

如何在DS918+上免费开启Synology Photos人脸识别功能:完整补丁指南

如何在DS918上免费开启Synology Photos人脸识别功能&#xff1a;完整补丁指南 【免费下载链接】Synology_Photos_Face_Patch Synology Photos Facial Recognition Patch 项目地址: https://gitcode.com/gh_mirrors/sy/Synology_Photos_Face_Patch 你是否曾经在群晖DS918…...

影像技术实战05:视频上传后无法在线播放?MP4 封装、编码兼容与 FastStart 修复方案

影像技术实战05&#xff1a;视频上传后无法在线播放&#xff1f;MP4 封装、编码兼容与 FastStart 修复方案 一、问题场景&#xff1a;视频明明是 MP4&#xff0c;为什么网页还是播不了&#xff1f; 在很多视频系统里&#xff0c;用户上传视频后&#xff0c;后台保存文件&#x…...

修音翻车现场实录:用Melodyne选择工具时,这3个坑我劝你别踩

Melodyne修音避坑指南&#xff1a;选择工具三大致命操作误区解析 第一次用Melodyne修人声时&#xff0c;我对着屏幕上的波形信心满满地拖动音符&#xff0c;结果导出的音频听起来像电子合成器故障——音高扭曲、节奏支离破碎。后来才发现&#xff0c;问题都出在那个看似简单的…...

学Simulink——交流微电网中双向DC-AC变换器的多模式切换仿真

目录 手把手教你学Simulink——交流微电网中双向DC-AC变换器的多模式切换仿真 一、背景与挑战 1.1 交流微网的“多面手”需求 1.2 核心痛点与多模式设计的“死穴” 二、系统架构与核心控制推导 2.1 整体架构&#xff1a;功率级与“三态”控制魔方 2.2 核心数学推导&#…...

Seraphine终极指南:英雄联盟LCU API实战开发与智能BP系统深度解析

Seraphine终极指南&#xff1a;英雄联盟LCU API实战开发与智能BP系统深度解析 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 在英雄联盟竞技环境中&#xff0c;数据驱动的决策能力往往决定了胜负的走向。Ser…...

连接池为什么重要?从一次“数据库没打满,但应用越来越慢”的事故说起

连接池为什么重要&#xff1f;从一次“数据库没打满&#xff0c;但应用越来越慢”的事故说起 在很多后端系统里&#xff0c;数据库往往是最容易被怀疑的对象。 接口慢了&#xff0c;第一反应是&#xff1a; “是不是数据库扛不住了&#xff1f;” 订单页卡住了&#xff0c;第一…...

别再死记硬背了!用MATLAB手把手教你画根轨迹图(附代码与避坑指南)

MATLAB实战&#xff1a;从零绘制根轨迹图的完整指南与避坑技巧 在控制系统的设计与分析中&#xff0c;根轨迹图是理解系统动态特性的重要工具。传统教学中&#xff0c;学生往往被要求死记硬背绘制规则&#xff0c;却难以理解其实际应用价值。本文将彻底改变这一现状——通过MAT…...

如何用Sunshine打造个人游戏云:终极自托管游戏串流解决方案

如何用Sunshine打造个人游戏云&#xff1a;终极自托管游戏串流解决方案 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 你是否曾经梦想在任何设备上畅玩PC游戏&#xff1f;无论是想…...