文件转换,简简单单,pdf转word,不要去找收费的了,自己学了之后免费转,之后就复制粘贴就ok了
先上一个链接pdf转word文件转换
接口层
@PostMapping("pdfToWord")public String pdfToWord(@RequestParam("file") MultipartFile file) throws IOException {String fileName = FileExchangeUtil.pdfToWord(file.getInputStream(),file.getName());return fileName;}
方法层-----一个方法直接搞定
/*** 只是单纯的文字转换,没有任何的格式** @param inputStream 文件流* @return*/public static String pdfToWord(InputStream inputStream, String fileName) {//创建一个堆系pdf对象PDDocument document = null;FileOutputStream outputStream = null;if (Objects.isNull(fileName)) {fileName = FileExchangeUtil.getRandomString();}try {document = PDDocument.load(inputStream);PDFTextStripper stripper = new PDFTextStripper();//获取文本内容String text = stripper.getText(document);//创建word文档XWPFDocument doc = new XWPFDocument();XWPFParagraph p = doc.createParagraph();XWPFRun r = p.createRun();r.setText(text);//保存wordoutputStream = new FileOutputStream(new File("./file/"+fileName + ".docx"));doc.write(outputStream);} catch (IOException e) {e.printStackTrace();try {outputStream.close();} catch (IOException ioException) {ioException.printStackTrace();return null;}return null;}return fileName;}
需要的依赖
<dependency><groupId>com.alibaba.fastjson2</groupId><artifactId>fastjson2</artifactId><version>2.0.40</version></dependency><!-- https://mvnrepository.com/artifact/io.springfox/springfox-boot-starter --><dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version></dependency><dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>29.0-jre</version></dependency><dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.4</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.2</version></dependency>
经得起实操,不要怪我没有整理最终生成的格式,实在有些东西不好搞,只能放放了
相关文章:
文件转换,简简单单,pdf转word,不要去找收费的了,自己学了之后免费转,之后就复制粘贴就ok了
先上一个链接pdf转word文件转换 接口层 PostMapping("pdfToWord")public String pdfToWord(RequestParam("file") MultipartFile file) throws IOException {String fileName FileExchangeUtil.pdfToWord(file.getInputStream(),file.getName());return…...
Jmeter——循环控制器中实现Counter计数器的次数重置
近期在使用Jmeter编写个辅助测试的脚本,用到了多个Loop Controller和Counter。 当时想的思路就是三个可变的数量值,使用循环实现;但第三个可变值的数量次数,是基于第二次循环中得到的结果才能确认最终次数,每次的结果…...
[创业之路-85]:IT创业成功老板的品质、创业失败老板的特征、成功领导者的品质、失败管理者的特征
目录 前言: 一、创业成功老板的品质 二、创业失败老板的特征 三、成功领导者的品质 四、失败管理者的特征 前言: 大多数创业或职场共事,都是基于某种人际关系或所谓的感情,这是大数的职场众生相,也是人情社会的中…...
警惕.360勒索病毒,您需要知道的预防和恢复方法。
引言: 网络威胁的演变无常,.360勒索病毒作为一种新兴的勒索软件,以其狡猾性备受关注。本文将深入介绍.360勒索病毒的特点,提供解决方案以恢复被其加密的数据,并分享一系列强化网络安全的预防措施。如果您在面对被勒索…...
人力资源小程序
人力资源管理对于企业的运营至关重要,而如今随着科技的发展,制作一个人力资源小程序已经变得非常简单和便捷。在本文中,我们将为您介绍如何通过乔拓云网制作一个人力资源小程序,只需五个简单的步骤。 第一步:注册登录乔…...
【多线程 - 10、线程同步3 ThreadLocal】
一、ThreadLocal 1、介绍 可以实现资源对象的线程隔离;可以实现了线程内的资源共享 如果使用 ThreadLocal 管理变量,则每一个使用该变量的线程都获得该变量的副本, 副本之间相互独立,这样每一个线程都可以随意修改自己的变量副本…...
【Flink 问题集】The generic type parameters of ‘Collector‘ are missing
错误展示: Exception in thread "main" org.apache.flink.api.common.functions.InvalidTypesException: The return type of function main(CollectionDemo.java:33) could not be determined automatically, due to type erasure. You can give type in…...
数据分析—将txt文件转为csv文件;将csv文件转为xls文件
txt文件转为csv文件转化代码: import csv# 输入txt文件路径 txt_file rC:\Users\ZARD\Desktop\daily-min-temperatures.txt# 输出csv文件路径 csv_file rC:\Users\ZARD\Desktop\daily-min-temperatures.csv# 打开txt文件以读取数据 with open(txt_file, r) as tx…...
【算法】二分查找-20231120
这里写目录标题 一、75. 颜色分类二、80. 删除有序数组中的重复项 II三、125. 验证回文串四、189. 轮转数组 一、75. 颜色分类 提示 中等 给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻ÿ…...
WPF实现将鼠标悬浮在按钮上时弹出菜单
在WPF 中,要实现当鼠标悬停在按钮上时显示菜单,并能够灵活设置菜单的位置(如按钮的上方或下方),你可以使用 Popup 控件来创建自定义的弹出菜单。以下是如何通过 Popup 控件来实现这种功能的步骤: 1. 在 XA…...
车载以太网-传输层-UDP
文章目录 UDP协议UDP报文格式UDP报文示例UDP协议测试UDP协议 UDP(User Datagram Protocol)是一种无连接的传输层协议,它不保证数据传输的可靠性,但是具有传输速度快的优点。UDP协议主要用于那些对数据传输速度要求较高,但对数据传输的可靠性要求不高的应用场景,如音视频…...
uniapp如何上传文件,使用API是什么
在uniapp中上传文件的方法有很多,其中一种常用的方法是使用wx.uploadFile() API。该API可以上传本地文件或网络文件,并支持设置请求头、请求参数等选项。 具体使用方法如下: 1.引入API: import { uploadFile } from /util/requ…...
【狂神说Java】Docker概述 | Docker安装 | Docker的常用命令
✅作者简介:CSDN内容合伙人、信息安全专业在校大学生🏆 🔥系列专栏 :【狂神说Java】 📃新人博主 :欢迎点赞收藏关注,会回访! 💬舞台再大,你不上台,…...
Git精讲
Git基本操作 创建Git本地仓库 git initgit clone 配置Git git config [--global] user.name "Your Name" git config [--global] user.email "emailexample.com"–global是一个可选项。如果使用了该选项,表示这台机器上所有的Git仓库都会使…...
读书笔记:Effective C++ 3.0版2005年Scott Meyers : 55条建议(47-55)
条款47 :请使用traits classes表现类型信息(Use traits classes for information about types) (1).Traits classes使得”类型相关信息”在编译期可用。它们以templates和”templates特化”完成实现。 (2).整合重载技术(overloading)后,traits classes有…...
Golang Context 的并发安全性探究
在 Golang 中,Context 是一个用于管理 goroutine 生命周期、传递请求和控制信息的重要机制。然而,当多个 goroutine 同时使用 Context 时,很容易出现并发安全性问题。本文将探讨如何正确使用 Context 并保证其在并发环境下的安全性。 1. Con…...
C++中只能有一个实例的单例类
C中只能有一个实例的单例类 前面讨论的 President 类很不错,但存在一个缺陷:无法禁止通过实例化多个对象来创建多名总统: President One, Two, Three; 由于复制构造函数是私有的,其中每个对象都是不可复制的,但您的目…...
单张图像3D重建:原理与PyTorch实现
近年来,深度学习(DL)在解决图像分类、目标检测、语义分割等 2D 图像任务方面表现出了出色的能力。DL 也不例外,在将其应用于 3D 图形问题方面也取得了巨大进展。 在这篇文章中,我们将探讨最近将深度学习扩展到单图像 3…...
340条样本就能让GPT-4崩溃,输出有害内容高达95%?OpenAI的安全防护措施再次失效
仅需340个示例微调GPT-4,即可绕过安全限制,让模型说出“枪支改装方法”、“生化武器制作过程”等有害内容? OpenAI的安全防护措施再次失效,攻击的成功率高达95%! 近日,美国顶尖大学UIUC与斯坦福联合对GPT…...
2023.11.17使用flask将多个图片文件上传至服务器
2023.11.17使用flask将多个图片文件上传至服务器 实现功能: 1、同时上传多个图片文件 2、验证文件扩展名 3、显示上传文件的文件名 4、显示文件上传结果 程序结构 main.py from flask import Flask, request, jsonify, render_template import osapp Flask(__n…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...
打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用
一、方案背景 在现代生产与生活场景中,如工厂高危作业区、医院手术室、公共场景等,人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式,存在效率低、覆盖面不足、判断主观性强等问题,难以满足对人员打手机行为精…...
2.3 物理层设备
在这个视频中,我们要学习工作在物理层的两种网络设备,分别是中继器和集线器。首先来看中继器。在计算机网络中两个节点之间,需要通过物理传输媒体或者说物理传输介质进行连接。像同轴电缆、双绞线就是典型的传输介质,假设A节点要给…...
[拓扑优化] 1.概述
常见的拓扑优化方法有:均匀化法、变密度法、渐进结构优化法、水平集法、移动可变形组件法等。 常见的数值计算方法有:有限元法、有限差分法、边界元法、离散元法、无网格法、扩展有限元法、等几何分析等。 将上述数值计算方法与拓扑优化方法结合&#…...
2025-05-08-deepseek本地化部署
title: 2025-05-08-deepseek 本地化部署 tags: 深度学习 程序开发 2025-05-08-deepseek 本地化部署 参考博客 本地部署 DeepSeek:小白也能轻松搞定! 如何给本地部署的 DeepSeek 投喂数据,让他更懂你 [实验目的]:理解系统架构与原…...
使用homeassistant 插件将tasmota 接入到米家
我写一个一个 将本地tasmoat的的设备同通过ha集成到小爱同学的功能,利用了巴法接入小爱的功能,将本地mqtt转发给巴法以实现小爱控制的功能,前提条件。1需要tasmota 设备, 2.在本地搭建了mqtt服务可, 3.搭建了ha 4.在h…...
