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

Springboot 整合 itext 实现PDF文件合并,识别图片则转成PDF拼接

目录

  • 前言
  • 一、引用依赖
  • 二、使用步骤
    • 1.Controller
    • 2.Service接口
    • 3.实现类
  • 三、请求接口及结果


前言

本文实现 Springboot 整合 itext 实现PDF文件合并,图片转PDF拼接。


一、引用依赖

<dependency><groupId>com.itextpdf</groupId><artifactId>itext7-core</artifactId><version>8.0.5</version><type>pom</type>
</dependency>

二、使用步骤

1.Controller

代码如下(示例):

import com.ruoyi.tools.service.IPdfHandlerService;
import lombok.RequiredArgsConstructor;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpServletResponse;
import java.util.List;@RestController
@RequiredArgsConstructor
@RequestMapping("/pdf")
public class PdfHandlerController {private final IPdfHandlerService pdfHandlerService;@PostMapping(value = "/generateFromFiles", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public void uploadFiles(@RequestPart("files") List<MultipartFile> files, HttpServletResponse response) throws Exception {byte[] pdfBytes = pdfHandlerService.generatePdfFromFiles(files

相关文章:

Springboot 整合 itext 实现PDF文件合并,识别图片则转成PDF拼接

目录 前言一、引用依赖二、使用步骤1.Controller2.Service接口3.实现类三、请求接口及结果前言 本文实现 Springboot 整合 itext 实现PDF文件合并,图片转PDF拼接。 一、引用依赖 <dependency><groupId>com.itextpdf</groupId><artifactId>itext7-co…...

TypeScript 中的 ! 和 ? 操作符

在 TypeScript 中&#xff0c;! 和 ? 是两个非常重要且常用的操作符&#xff0c;分别用于非空断言和可选链操作。下面简单介绍一下二者。 1. 非空断言操作符 ! 1.1 含义 非空断言操作符 !&#xff08;Non-null assertion operator&#xff09;用来告诉 TypeScript 编译器&a…...

开源三代示波器的高速波形刷新方案开源,支持VNC远程桌面,手机,Pad,电脑均可访问(2024-11-11)

说明&#xff1a; 1、本来这段时间是一年一度Hackaday硬件设计开源盛宴&#xff0c;但hackaday电子大赛在去年终结了。所以我开源个我的吧。 2、三代示波器的高速波形刷新方案&#xff0c;前两年就做好了&#xff0c;这两年忙H7-TOOL的更新比较多&#xff0c;三代示波器的更新…...

谷歌推出设备内置人工智能,实时向手机用户发出诈骗电话警报

Google 宣布推出适用于 Android 的新安全功能&#xff0c;可实时防御诈骗和有害应用。 这些功能由先进的设备内置 AI 提供支持&#xff0c;可在不损害隐私的情况下增强用户安全性。 这些新的安全功能首先在 Pixel 上推出&#xff0c;并将很快在更多 Android 设备上推出。 诈…...

AI换人脸facefusion项目口型同步‌API化改造及部署

一. 简介 ‌FaceFusion‌是一款强大的AI换脸软件&#xff0c;它支持图片、视频以及直播换脸&#xff0c;官方将其称为“下一代脸部交换器和增强器”。FaceFusion的最新版本为2.6.1&#xff0c;这个版本在原有基础上增加了更多的模型和高清算法&#xff0c;显著提升了图片和视频…...

移动端问题

这里只是做一个记录&#xff0c;不一定大家都会有问题&#xff0c;参考就行 一、页面回弹 苹果有&#xff0c;安卓没有 解决&#xff1a;pages.json下 app-plus { bounce: none} 关闭回弹效果 二、onreachBottom触底生命周期&#xff0c;ios无法触发 修改触底数值&#xff1a…...

Linux网络——网络初识

目录 1. 认识协议 2. 协议的分层 3. OSI 七层模型 && TCP/IP 五层(四层)模型 4. 网络传输的基本流程 5. 以太网的通信原理 6. 数据的跨网络传播 7. 认识 IP 地址 ① IP 是什么 ② IP 与 MAC 的关系 ③ 为什么需要 IP 在谈及网络之前&#xff0c;我们要先对学…...

从华为到创业公司

我有一个朋友&#xff0c;在华为工作了很长一段时间&#xff0c;一年多前&#xff0c;他从华为出来到了一家创业公司。 周末趁着有时间&#xff0c;我跟他聊了下关于从华为到创业公司的一些问题&#xff0c;总结给大伙看看。 ▎1 在华为工作和在创业公司工作最大的差别是什么呢…...

Vue 组件通信及进阶语法

文章目录 一、scoped 样式冲突二、data 是一个函数三、组件通信1. 父子通信1.1 props 校验1.2 props 比较 data 2. 非父子通信2.1 event bus2.2 provide-inject 四、进阶语法1. v-model 详解2. sync 修饰符3. ref 和 $refs4. $nextTick 一、scoped 样式冲突 注意点&#xff1a;…...

vue文本高亮处理

在vue的v-for循环中处理搜索关键字高亮问题&#xff0c;通过截取文字判断&#xff0c;分成三段拼接起来 <div class"check-list" v-if"shopList.length >0"><a-checkbox change"onChangeShop($event,item)" :checked"checkedL…...

androidstudio入门到放弃配置

b站视频讲解传送门 android_studio安装包&#xff1a;https://developer.android.google.cn/studio?hlzh-cn 下载安装 开始创建hello-world 1.删除缓存 文件 下载gradle文件压缩&#xff1a;gradle-8.9用自己创建项目时自动生成的版本即可&#xff0c;不用和我一样 https://…...

NLP论文速读(谷歌出品)|缩放LLM推理的自动化过程验证器

论文速读|Rewarding Progress: Scaling Automated Process Verifiers for LLM Reasoning 论文信息&#xff1a; 简介&#xff1a; 这篇论文探讨了如何提升大型语言模型&#xff08;LLM&#xff09;在多步推理任务中的性能。具体来说&#xff0c;它试图解决的问题是现有的基于结…...

【Linux学习】【Ubuntu入门】1-4 ubuntu终端操作与shell命令1

1.使用快捷键CtrlAltT打开命令终端&#xff0c;或者单击右键点击… 2.常用shell命令 目录信息查看命令&#xff1a;ls ls -a&#xff1a;显示目录所有文件及文件夹&#xff0c;包括隐藏文件&#xff0c;比如以.开头的 ls -l&#xff1a;显示文件的详细信息 ls -al&#xff1…...

【Qt】Qt在窗口中加载Web界面的方法汇总

1、Qt WebEngine 1)Qt版本:Qt5.4以上; 2)平台要求(https://doc.qt.io/archives/qt-5.9/qtwebengine-platform-notes.html): 例如:Windows下只能使用 MSVC 编译器,不支持MinGW编译器,会报错(: error: Unknown module(s) in QT: webenginewidgets) 并且不能用在Qt编…...

Java集合框架之Collection集合遍历

引言 在Java编程中&#xff0c;集合&#xff08;Collection&#xff09;框架是处理对象集合的核心工具。它提供了一套统一的接口和类来存储和操作对象集合。遍历集合是日常开发中的一项基本任务&#xff0c;本文将深入探讨Java Collection集合的遍历方法&#xff0c;并提供实际…...

基于STM32的智能充电桩:集成RTOS、MQTT与SQLite的先进管理系统设计思路

一、项目概述 随着电动车的普及&#xff0c;充电桩作为关键基础设施&#xff0c;其智能化、网络化管理显得尤为重要。本项目旨在基于STM32微控制器开发一款智能充电桩&#xff0c;能够实现高效的充电监控与管理。项目通过物联网技术&#xff0c;提供实时数据监测、远程管理、用…...

windows 查看yolo11 是否安装了cuda

一、通过python查看 import torch print(torch.cuda.is_available()) 二、通过 pip list 查看 在conda环境 可以看出torch 后面是2.1.4 cu124 说明GPU环境安装成功。 如果是cpu环境&#xff0c;则是&#xff1a;...

机器学习【激活函数】

笔记内容侵权联系删 激活函数的概念神经网络中的每个神经元节点接受上一层神经元的输出值作为本神经元的输入值&#xff0c;并将输入值传递给下一层&#xff0c;输入层神经元节点会将输入属性值直接传递给下一层(隐层或输出层)。在多层神经网络中&#xff0c;上层节点的输入在加…...

【OpenEuler】配置虚拟ip

OpenEuler系统手动配置虚ip 介绍操作方法临时生效永久生效 验证 介绍 我们知道通过keepalived服务可以为linux服务器设置虚拟ip&#xff0c;但是有些特殊场景下若无法安装部署keepalived服务&#xff0c;则需要通过手动设置的方式&#xff0c;配置服务器的虚拟ip。 本方案提供…...

数据分析师证书怎么考

在信息技术飞速发展的今天&#xff0c;数据分析已成为推动各行业进步的核心引擎。CDA&#xff08;Certified Data Analyst&#xff09;数据分析师证书以其权威性和实用性&#xff0c;成为许多数据分析从业者的职业加速器。本文将深入探讨如何考取CDA数据分析师证书&#xff0c;…...

Codex SQL迁移终极指南:数据库架构变更的自动化革命

Codex SQL迁移终极指南&#xff1a;数据库架构变更的自动化革命 在当今快速迭代的软件开发环境中&#xff0c;数据库架构变更是每个开发团队都必须面对的挑战。传统的手动SQL迁移过程不仅耗时耗力&#xff0c;还容易出错。Codex作为一款革命性的聊天驱动开发工具&#xff0c;通…...

对比官方渠道Taotoken在Token计费与套餐上的成本优势感知

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比官方渠道Taotoken在Token计费与套餐上的成本优势感知 对于个人开发者和初创团队而言&#xff0c;在探索和集成大模型能力时&am…...

一封好JD,唤醒应届生的投递欲

你的实习岗位描述为何石沉大海&#xff1f; 在校招实习生招募的初期&#xff0c;JD&#xff08;职位描述&#xff09;就是企业的门面。然而&#xff0c;很多HR直接套用社招模版&#xff0c;导致文案枯燥乏味&#xff0c;完全无法触动应届生的痛点。在信息爆炸的春招季&#xf…...

3分钟掌握MangaOCR:日语漫画文本识别的终极解决方案

3分钟掌握MangaOCR&#xff1a;日语漫画文本识别的终极解决方案 【免费下载链接】manga-ocr Optical character recognition for Japanese text, with the main focus being Japanese manga 项目地址: https://gitcode.com/gh_mirrors/ma/manga-ocr 你是否曾面对日文漫画…...

蓝桥杯单片机备赛:AT24C02读写避坑指南(附STC15完整工程)

蓝桥杯单片机备赛&#xff1a;AT24C02读写避坑指南&#xff08;附STC15完整工程&#xff09; 在蓝桥杯单片机竞赛中&#xff0c;AT24C02这颗小小的EEPROM芯片常常成为决定胜负的关键。作为参赛选手&#xff0c;你可能已经掌握了I2C协议的基本原理&#xff0c;但在紧张的比赛环境…...

构建AI应用时如何利用Taotoken实现多模型备援与故障切换

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 构建AI应用时如何利用Taotoken实现多模型备援与故障切换 在构建面向生产环境的AI应用时&#xff0c;服务的连续性与稳定性是核心考…...

FreeRDP 终极指南:跨平台远程桌面完全解决方案

FreeRDP 终极指南&#xff1a;跨平台远程桌面完全解决方案 【免费下载链接】FreeRDP FreeRDP is a free remote desktop protocol library and clients 项目地址: https://gitcode.com/gh_mirrors/fr/FreeRDP FreeRDP 是一款功能强大的开源远程桌面协议实现库&#xff0…...

3大核心优势解析:APK Installer如何彻底改变Windows安装Android应用体验

3大核心优势解析&#xff1a;APK Installer如何彻底改变Windows安装Android应用体验 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在Windows系统上运行Android应用的…...

保姆级教程:用STM32F103C8T6和MAX485芯片实现稳定的一主多从RS485通讯(附完整代码)

STM32F103C8T6与MAX485构建工业级RS485总线系统实战指南 在工业自动化领域&#xff0c;稳定可靠的通信系统如同神经脉络般重要。想象一下&#xff0c;当您需要在一个大型温室中部署数十个温湿度传感器&#xff0c;或者在一个工厂车间监控多台设备的运行状态时&#xff0c;点对点…...

Jenkins 安装Publish over SSH插件远程发布执行shell脚本

1.在jenkins安装Publish over SSH插件&#xff0c;在Manage Jenkins–Plugins–Available plugins中搜索Publish over SSH&#xff0c;然后安装即可。2.安装成功以后&#xff0c;需要到系统设置DashBoard—Manage Jenkins—System中进行配置&#xff0c;如图 可以通过密码链接也…...