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

java 富文本转pdf

前言:

本文的目的是将传入的富文本内容(html标签,图片)并且分页导出为pdf。

所用的核心依赖为iText7。

因为itextpdf-core的核心包在maven中央仓库中,阿里云华为云等拉不下来,中央仓库在外网,并且此包在中央仓库中未提供可下载的jar包文件,所以通过iText github上提供的core包的组成jar,实现core包所需方法的调用。

一、jar包导入

在子项目的resources下新建lib目录,下载文件所提供的压缩包,解压jar包文件到lib下,如图所示

二、maven依赖导入

        <dependency><groupId>com.itextpdf</groupId><artifactId>barcodes</artifactId><version>7.2.3</version><scope>system</scope><systemPath>${project.basedir}/src/main/resources/lib/barcodes-7.2.3.jar</systemPath></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>commons</artifactId><version>7.2.3</version><scope>system</scope><systemPath>${project.basedir}/src/main/resources/lib/commons-7.2.3.jar</systemPath></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>font-asian</artifactId><version>7.2.3</version><scope>system</scope><systemPath>${project.basedir}/src/main/resources/lib/font-asian-7.2.3.jar</systemPath></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>forms</artifactId><version>7.2.3</version><scope>system</scope><systemPath>${project.basedir}/src/main/resources/lib/forms-7.2.3.jar</systemPath></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>hyph</artifactId><version>7.2.3</version><scope>system</scope><systemPath>${project.basedir}/src/main/resources/lib/hyph-7.2.3.jar</systemPath></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>io</artifactId><version>7.2.3</version><scope>system</scope><systemPath>${project.basedir}/src/main/resources/lib/io-7.2.3.jar</systemPath></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>kernel</artifactId><version>7.2.3</version><scope>system</scope><systemPath>${project.basedir}/src/main/resources/lib/kernel-7.2.3.jar</systemPath></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>layout</artifactId><version>7.2.3</version> <!-- 如果需要布局功能 --><scope>system</scope><systemPath>${project.basedir}/src/main/resources/lib/layout-7.2.3.jar</systemPath></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>pdfa</artifactId><version>7.2.3</version><scope>system</scope><systemPath>${project.basedir}/src/main/resources/lib/pdfa-7.2.3.jar</systemPath></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>pdftest</artifactId><version>7.2.3</version><scope>system</scope><systemPath>${project.basedir}/src/main/resources/lib/pdftest-7.2.3.jar</systemPath></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>sign</artifactId><version>7.2.3</version><scope>system</scope><systemPath>${project.basedir}/src/main/resources/lib/sign-7.2.3.jar</systemPath></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>styled-xml-parser</artifactId><version>7.2.3</version><scope>system</scope><systemPath>${project.basedir}/src/main/resources/lib/styled-xml-parser-7.2.3.jar</systemPath></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>svg</artifactId><version>7.2.3</version><scope>system</scope><systemPath>${project.basedir}/src/main/resources/lib/svg-7.2.3.jar</systemPath></dependency><!-- https://mvnrepository.com/artifact/com.itextpdf/html2pdf --><dependency><groupId>com.itextpdf</groupId><artifactId>html2pdf</artifactId><version>4.0.3</version></dependency>

三、打包配置

因为从外部引入jar包,在本地测试没有问题,但是打包后发布,引用不了,所以需要配置打包引用外部jar包。所以可以根据以下链接,博主的另外一个文章提供了相关的方法。

java引用第三方jar包,打包全流程_java引入外部jar包-CSDN博客

四、工具类

import com.itextpdf.html2pdf.ConverterProperties;
import com.itextpdf.html2pdf.HtmlConverter;
import com.itextpdf.html2pdf.resolver.font.DefaultFontProvider;
import com.itextpdf.io.exceptions.IOException;
import com.itextpdf.layout.font.FontProvider;
import org.springframework.stereotype.Component;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
import java.nio.charset.StandardCharsets;@Component
public class RichTextExporter {/*** HTML内容转PDF并输出到响应流* @param htmlContent HTML内容* @param response HttpServletResponse* @param request HttpServletRequest(用于获取基础路径)* @param fileName 生成的PDF文件名* @throws IOException 转换过程异常*/public static void convertToPdf(String htmlContent,HttpServletResponse response,HttpServletRequest request,String fileName) throws IOException, java.io.IOException {// 配置响应头configureResponseHeaders(response, fileName, request);try (OutputStream outputStream = response.getOutputStream()) {// 创建转换器配置ConverterProperties converterProperties = createConverterProperties(request);// 执行转换HtmlConverter.convertToPdf(htmlContent, outputStream, converterProperties);}}/*** 配置HTTP响应头*/private static void configureResponseHeaders(HttpServletResponse response,String fileName,HttpServletRequest request) {response.setContentType("application/pdf");String attachment = String.format("attachment; filename=\"%s\"",encodeFileName(fileName, request));response.setHeader("Content-Disposition", attachment);response.setCharacterEncoding(StandardCharsets.UTF_8.name());}/*** 创建转换器配置(处理路径、字体、字符集等)*/private static ConverterProperties createConverterProperties(HttpServletRequest request) {ConverterProperties properties = new ConverterProperties();// 设置基础URI(解析相对路径,如图片/字体地址)properties.setBaseUri(getBaseHttpPath(request));// 配置字体(支持中文、非嵌入字体、符号)FontProvider fontProvider = new DefaultFontProvider(true, true, true);properties.setFontProvider(fontProvider);// 设置字符集properties.setCharset(StandardCharsets.UTF_8.name());return properties;}/*** 获取完整的基础HTTP路径(包含协议、域名、端口、上下文路径)*/private static String getBaseHttpPath(HttpServletRequest request) {int port = request.getServerPort();String portStr = (port == 80 || port == 443) ? "" : ":" + port;return String.format("%s://%s%s%s",request.getScheme(),request.getServerName(),portStr,request.getContextPath());}/*** 处理文件名编码(兼容不同浏览器)*/private static String encodeFileName(String fileName, HttpServletRequest request) {String userAgent = request.getHeader("User-Agent");try {if (userAgent.contains("MSIE") || userAgent.contains("Edge") || userAgent.contains("Chrome")) {return java.net.URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");} else {return new String(fileName.getBytes(StandardCharsets.UTF_8), "ISO-8859-1");}} catch (Exception e) {return fileName;}}}

五、controller

    @PostMapping("/export")@Operation(summary = "导出pdf")@Parameter(name = "htmlContent", description = "富文本内容", required = true)public void exportPdf(@RequestParam("htmlContent") String htmlContent, HttpServletRequest request, HttpServletResponse response) throws IOException {RichTextExporter.convertToPdf(htmlContent, response, request, "pdf导出测试");}

六、yaml配置

因为富文本内容很大,所以如果必须用post请求,并且需要修改上传配置,在yaml文件中加入如下配置即可:

###设置缓冲区大小,方便上传大文件
server:tomcat:max-swallow-size: 15MBmax-http-form-post-size: 16777216

七、测试

八、注意

经测试,富文本内容最好把ol标签给过滤掉,因为会导致富文本导出为pdf出错,并且如果还需要支持其余特殊的标签,请自行扩展工具类。

相关文章:

java 富文本转pdf

前言&#xff1a; 本文的目的是将传入的富文本内容(html标签&#xff0c;图片)并且分页导出为pdf。 所用的核心依赖为iText7。 因为itextpdf-core的核心包在maven中央仓库中&#xff0c;阿里云华为云等拉不下来&#xff0c;中央仓库在外网&#xff0c;并且此包在中央仓库中未…...

17.第二阶段x64游戏实战-人工遍历二叉树结构

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 上一个内容&#xff1a;16.第二阶段x64游戏实战-分析二叉树结构 上一个内容里把二叉树的结构写了写&am…...

C#基于Sunnyui框架和MVC模式实现用户登录管理

C#基于Sunnyui框架和MVC模式实现用户登录管理 1 Controller1.1 UserManagementController.cs&#xff08;控制器入口&#xff09; 2 Model2.1 UserRepository.cs&#xff08;用户管理模型&#xff09;2.2 User.cs&#xff08;用户结构体&#xff09;2.3 SQLiteHelper.cs&#x…...

Spring Boot实战(三十六)编写单元测试

目录 一、什么是单元测试&#xff1f;二、Spring Boot 中的单元测试依赖三、举例 Spring Boot 中不同层次的单元测试3.1 Service层3.2 Controller 层3.3 Repository层 四、Spring Boot 中 Mock、Spy 对象的使用4.1 使用Mock对象的背景4.2 什么是Mock对象&#xff0c;有哪些好处…...

声音分离人声和配乐-从头设计数字生命第4课——仙盟创梦IDE

音频分离在数字人中具有多方面的重要作用&#xff0c;主要体现在以下几个方面&#xff1a; 提高语音合成质量&#xff1a;通过音频分离&#xff0c;可以将原始音频中的语音部分与其他背景噪音或干扰声音分离开来。这样在进行语音合成时&#xff0c;能够获得更纯净的语音信号&am…...

http协议、全站https

一、http协议 1、为何要学http协议? 用户用浏览器访问网页,默认走的都是http协议,所以要深入研究web层,必须掌握http协议 2、什么是http协议 1、全称Hyper Text Transfer Protocol(超文本传输协议) ### 一个请求得到一个响应包 普通…...

Mediamtx与FFmpeg远程与本地推拉流使用

1.本地推拉流 启服 推流 ffmpeg -re -stream_loop -1 -i ./DJI_0463.MP4 -s 1280x720 -an -c:v h264 -b:v 2000k -maxrate 2500k -minrate 1500k -bufsize 3000k -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:8554/stream 拉流 ffplay -rtsp_transport tcp rtsp://43.136.…...

css3新特性第七章(3D变换)

css新特性第七章(3D变换) 一、3d空间和景深 元素进行 3D 变换的首要操作&#xff1a;父元素必须开启 3D 空间&#xff01; 使用 transform-style 开启 3D 空间&#xff0c;可选值如下&#xff1a; flat &#xff1a; 让子元素位于此元素的二维平面内&#xff08; 2D 空间&…...

redis经典问题

1.缓存雪崩 指缓存同一时间大面积的失效&#xff0c;所以&#xff0c;后面的请求都会落到数据库上&#xff0c;造成数据库短时间内承受大量请求而崩掉。 解决方案&#xff1a; 1&#xff09;Redis 高可用&#xff0c;主从哨兵&#xff0c;Redis cluster&#xff0c;避免全盘崩…...

数据仓库是什么?数据仓库架构有哪些?

目录 数据仓库是什么&#xff1f;数据仓库架构有哪些&#xff1f; 一、数据仓库是什么&#xff1f; 二、数据仓库的架构分层 1. 获取层 2. 数据层 3. 应用层 4. 访问层 三、数据仓库的价值体现 1.决策支持 2.业务优化 3.提升竞争力 四、数据仓库的未来发展趋势 总…...

Nginx 通过 Let‘s Encrypt 实现 HTTPS 访问全流程指南

一、Let’s Encrypt 与 Certbot 简介 Let’s Encrypt 是由非营利组织 ISRG 运营的免费证书颁发机构&#xff08;CA&#xff09;&#xff0c;旨在推动 HTTPS 的普及。其核心工具 Certbot 能自动化完成证书申请、部署与续期&#xff0c;大幅降低 HTTPS 的配置复杂度。通过 Certb…...

网络知识:路由器静态路由与动态路由介绍

目录 一、静态路由 1.1 什么是静态路由? 1.2 静态路由的好处 1.3 静态路由的局限 1.4 静态路由应用场景 微型办公室网络 性能要求高业务流量 安全性要求高的环境 二、动态路由 2.1 什么是动态路由? 2.2 动态路由的好处 2.3 动态路由的局限 2.4 动态路由的应用场…...

LLaMA3微调全流程:从LoRA到QLoRA,7B参数模型推理速度提升4倍的代码实战

LLaMA3微调全流程&#xff1a;从LoRA到QLoRA&#xff0c;7B参数模型推理速度提升4倍的代码实战 发现了一个巨牛的人工智能学习网站&#xff0c;分享一下给大家&#xff01;https://www.captainbed.cn/ccc 前言 在大模型时代&#xff0c;LLaMA系列作为开源社区的明星模型&#…...

日内组合策略思路

一、策略概述 本策略是一种针对日内交易设计的策略&#xff0c;其核心在于通过识别市场趋势和突破信号&#xff0c;结合动态止损和止盈机制&#xff0c;实现日内交易的盈利。策略以金字塔式的加仓方式控制风险&#xff0c;并通过灵活的平仓策略锁定收益。 二、交易逻辑思路 市场…...

从空气污染监测到嵌入式仿真教学:基于STM32与MQ135的实践探索

一、嵌入式系统在环境监测中的技术演进 随着全球城市化进程加速&#xff0c;世界卫生组织&#xff08;WHO&#xff09;数据显示&#xff0c;92%的人口长期暴露于超标PM2.5环境中。在此背景下&#xff0c;基于STM32微控制器的智能监测系统因其高性价比&#xff08;单节点成本低…...

【数据结构】Map与Set结构详解

数据结构系列五&#xff1a;Map与Set(一) 一、接口的实现 1.方法上 2.成员上 二、Map的内外双接口结构 1.实现 1.1外部Map接口的实现 1.1.1临摹整体 1.1.2外部类实现整体 1.2内部Entry接口的实现 1.2.1临摹内部 1.2.2内部类实现内部 2.关系 3.意义 3.1逻辑内聚 …...

银河麒麟(内核CentOS8)安装rbenv、ruby2.6.5和rails5.2.6

一、安装 rbenv 和 ruby-build 1.安装 rbenv git clone https://github.com/rbenv/rbenv.git ~/.rbenv 2. 添加 rbenv 到 PATH echo export PATH"$HOME/.rbenv/bin:$PATH" >> ~/.bashrc echo eval "$(rbenv init -)" >> ~/.bashrc source ~…...

豆包桌面版 1.47.4 可做浏览器,免安装绿色版

自己动手升级更新办法&#xff1a; 下载新版本后安装&#xff0c;把 C:\Users\用户名\AppData\Local\Doubao\Application 文件夹的文件&#xff0c;拷贝替换 DoubaoPortable\App\Doubao 文件夹的文件&#xff0c;就升级成功了。 再把安装的豆包彻底卸载就可以。 桌面版比网页版…...

Linux 命令行与 vi/vim 编辑器完全指南

一、Linux 命令行基础 &#xff08;一&#xff09;命令与命令行简介 命令&#xff1a;Linux 系统内置的操作指令&#xff0c;以字符化形式使用&#xff0c;用于指示系统执行特定任务。 命令行&#xff08;终端&#xff09;&#xff1a;提供字符化的操作界面&#xff0c;用户通…...

海量聊天消息处理:ShardingJDBC分库分表、ClickHouse冷热数据分离、ES复合查询方案、Flink实时计算与SpringCloud集成

海量聊天消息处理&#xff1a;ShardingJDBC分库分表、ClickHouse冷热数据分离、ES复合查询方案、Flink实时计算与SpringCloud集成 一、背景介绍 每天有2000万条聊天消息&#xff0c;一年下来几千万亿海量数据。为应对这种规模的数据存储和处理需求&#xff0c;本文将从以下几…...

金融系统上云之路:云原生后端架构在金融行业的演化与实践

📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:为什么金融行业也要“云原生”? 金融行业素来以“安全第一、稳定优先”著称,面对每日亿级交易请求、秒级风控响应、PB级数据处理,系统稳定性和性能要求极高。长期以来,大型金融机构往…...

每日c/c++题 备战蓝桥杯 ([洛谷 P1226] 快速幂求模题解)

[洛谷 P1226] 快速幂求模题解 &#x1f4cc; 题目链接 https://www.luogu.com.cn/problem/P1226 &#x1f4dd; 题目描述 给定正整数 a、b 和质数 p&#xff0c;要求计算&#xff1a; a^b % p其中&#xff1a; 1 ≤ a ≤ 10^90 ≤ b ≤ 10^92 ≤ p ≤ 10^9 &#x1f4a1…...

深度学习小记(包括pytorch 还有一些神经网络架构)

这个是用来增加深度学习的知识面或者就是记录一些常用的命令,会不断的更新 import torchvision.transforms as transforms toPIL transforms.ToPILImage()#可以把tensor转换为Image类型的 imgtoPIL(img) #利用save就可以保存下来 img.save("/opt/data/private/stable_si…...

Spring Boot默认缓存管理

Spring框架支持透明地向应用程序添加缓存&#xff0c;以及对缓存进行管理&#xff0c;其管理缓存的核心是将缓存应用于操作数据的方法&#xff0c;从而减少操作数据的执行次数&#xff0c;同时不会对程序本身造成任何干扰。Spring Boot继承了Spring框架的缓存管理功能&#xff…...

倚光科技:微透镜阵列低成本加工新范式

在光通信、机器视觉、生物医学成像等前沿领域&#xff0c;微透镜阵列凭借其独特的光学特性成为不可或缺的核心部件。然而&#xff0c;传统加工方式往往面临成本高、效率低、精度难控等困境。倚光科技深耕光学加工领域多年&#xff0c;创新运用单点金刚石车床技术&#xff0c;成…...

Vue+Flask豆瓣LSTM影评+推荐算法大数据可视化平台深度学习系统源码

文章结尾部分有CSDN官方提供的学长 联系方式名片 文章结尾部分有CSDN官方提供的学长 联系方式名片 关注B站&#xff0c;有好处&#xff01; 编号&#xff1a; F011 视频介绍 VueFlask豆瓣LSTM影评推荐算法大数据可视化平台深度学习系统源码&#xff08;2023重制&#xff09; 1…...

【MySQL】基本查询

目录 增加 查询 基本查询 where子句 结果排序 筛选分页结果 修改(更新) 删除 普通删除 截断表 插入查询结果 聚合函数 分组查询 这一节的内容是对表内容的增删查改&#xff0c;其中重点是表的查询 增加 语法&#xff1a; INSERT [INTO] table_name [(column [, …...

hive默认的建表格式

在 Hive 中创建表时&#xff0c;默认的建表语法格式如下&#xff1a; CREATE TABLE table_name (column1_type,column2_type,... ) ROW FORMAT DELIMITED FIELDS TERMINATED BY , STORED AS TEXTFILE;在这个语法中&#xff1a; CREATE TABLE table_name&#xff1a;指定要创建…...

配置RSUniVLM环境(自用)

首先git clone这个仓库&#xff0c;但是好像不太行&#xff0c;就直接下载下来吧 创个容器弄&#xff0c;容器里需要conda gpu 镜像的话 在dockerhub找到了一个&#xff1a;docker pull vkashyap10/llava-next 下载在了 ssh root10.12.107.240 amos123 这个机器上。等会看…...

产品经理对于电商接口的梳理||电商接口文档梳理与接入

接口梳理7个注意点总结 ①注意要测试环境和生产环境。生产上线时候要提醒研发换到生产环境调用。 ②注意必输字段和选输字段&#xff0c;要传入字段的含义和校验。枚举值不清楚含义的要询问对方含义&#xff0c;比如说单据类型字段枚举值是B2C发货单&#xff0c;BBC发货单&am…...

深入探索Spark-Streaming:从Kafka数据源创建DStream

在大数据处理领域&#xff0c;Spark-Streaming是一个强大的实时流处理框架&#xff0c;而Kafka作为高性能的分布式消息队列&#xff0c;二者结合能实现高效的数据处理。今天就来聊聊Spark-Streaming中从Kafka数据源创建DStream的相关知识。 早期&#xff0c;Spark-Streaming通过…...

R 语言科研绘图第 41 期 --- 桑基图-基础

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...

基于STM32的汽车主门电动窗开关系统设计方案

芯片和功能模块选型 主控芯片 STM32F103C8T6:基于 ARM Cortex - M3 内核,有丰富的 GPIO 接口用于连接各类外设,具备 ADC 模块可用于电流检测,还有 CAN 控制器方便实现 CAN 总线通信。它资源丰富、成本低,适合学生进行 DIY 项目开发。按键模块 轻触按键:用于控制车窗的自…...

Spring Boot 配置处理器深度解析:元数据驱动的工程实践

Spring Boot 配置处理器深度解析&#xff1a;元数据驱动的工程实践 引言&#xff1a;为什么关注配置处理器&#xff1f; 在 Spring Boot 中&#xff0c;spring-boot-configuration-processor 是支撑“配置即文档”“配置即代码”的基础设施。它通过编译期生成结构化的配置元数…...

深入详解人工智能数学基础——概率论中的贝叶斯深度学习

🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C++, C#, Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C++、C#等开发语言,熟悉Java常用开发技术,能熟练应用常用数据库SQL server,Oracle,mysql,postgresql等进行开发应用…...

Bandizip解压缩软件 v7.37 正式版解锁专业版

软件介绍 Bandizip 是一款专业的解压缩软件&#xff0c;号称解压速度最快的压缩和解压缩文件管理器。支持多核快速压缩、文件拖放&#xff0c;可创建带密码和多卷的压缩包&#xff0c;提取包括RAR/RAR5/7Z/ZIP在内30多种格式&#xff1b;支持WinZip、7-Zip和WinRAR及其它压缩格…...

算法笔记.spfa算法(bellman-ford算法的改进)

题目&#xff1a;&#xff08;来源于AcWing&#xff09; 给定一个 n 个点 m 条边的有向图&#xff0c;图中可能存在重边和自环&#xff0c; 边权可能为负数。 请你求出 1 号点到 n 号点的最短距离&#xff0c;如果无法从 1 号点走到 n 号点&#xff0c;则输出 impossible。 …...

HTML给图片居中

在不同的布局场景下&#xff0c;让 <img> 元素居中的方法有所不同。下面为你介绍几种常见的居中方式 1. 块级元素下的水平居中 如果 <img> 元素是块级元素&#xff08;可以通过 display: block 设置&#xff09;&#xff0c;可以使用 margin: 0 auto 来实现水平居…...

C#中用 OxyPlot 在 WinForms 实现波形图可视化(附源码教程)

今天给大家安利一个超级实用的绘图控件库——OxyPlot&#xff0c;配合WinForms使用&#xff0c;让你轻松绘制专业级图表&#xff01; 本文将手把手教你如何搭建一个简单的波形图显示窗口&#xff0c;完整步骤 源码解析&#xff0c;建议收藏&#xff01; 项目搭建步骤&#xf…...

arm-linux emmc镜像备份 和 rootfs镜像备份

介绍 对于系统镜像存储介质,我们更推荐使用eMMC, eMMC具有更快的读写速度和更高的稳定系, 而SD卡会有兼容性较差的问题, 使用部分品牌部分系列的SD卡会导致系统无法启动或运行异常。 另外,安卓系统镜像无法运行在SD卡上。 注意事项 使用野火LubanCat的镜像烧录到SD卡, 只…...

opencv--图像变换

图像变换 图像滤波用于处理像素(去噪)&#xff0c;从而改变图像质量。 图像的几何变换是指改变图像的几何位置、几何形状、几何尺寸等几何特征。 <详细了解&#xff0c;看opencv书> 概念 矩阵的运算 链接 齐次坐标 链接 齐次坐标就是用N1维来代表N维坐标&#xff…...

C语言基础(day0424)

目录 一. 键盘输入 1.1 grtchar&#xff08;&#xff09; 1.2 scanf&#xff08;&#xff09; 总结: 二. 全局变量/局部变量&#xff08;函数的分类&#xff09; 1.全局变量 2.局部变量 三.C语言内存模型&#xff08;堆栈内存and so on &#xff09; 3.1 栈区&#x…...

前端项目搭建集锦:vite、vue、react、antd、vant、ts、sass、eslint、prettier、浏览器扩展,开箱即用,附带项目搭建教程

前端项目搭建集锦&#xff1a;vite、vue、react、antd、vant、ts、sass、eslint、prettier、浏览器扩展&#xff0c;开箱即用&#xff0c;附带项目搭建教程 前言&#xff1a;一、Vue项目下载快速通道二、React项目下载快速通道三、BrowserPlugins项目下载快速通道四、项目搭建教…...

Next.js v15 eslint 规则配置

问题 An empty interface declaration allows any non-nullish value, including literals like 0 and "". If that’s what you want, disable this lint rule with an inline comment or configure the ‘allowInterfaces’ rule option.If you want a type meanin…...

【C语言经典算法实战】:从“移动距离”问题看矩阵坐标计算

&#x1f381;个人主页&#xff1a;User_芊芊君子 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 &#x1f50d;系列专栏&#xff1a;AI 【前言】 在C语言算法学习与实践领域中&#xff0c;矩阵相关问题是极具代表性且高频出现的题型。“移动距离”问题将…...

算法题(133):二维差分

审题&#xff1a; 本题需要我们多次对某个矩形区域的数据加k&#xff0c;最后输出加完的数据 思路&#xff1a; 方法一&#xff1a;二维差分 本题涉及的是对二维的区间加同一个数的操作&#xff0c;且只显示一次最终结果&#xff0c;所以我们可以使用差分的方法 二维差分的性质…...

java kafka

安装 安装下载 导入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apach…...

数据结构【树和二叉树】

树和二叉树 前言1.树1.1树的概念和结构1.2树的相关术语1.3树的表示方法1.4 树形结构实际运用场景 2.二叉树2.1二叉树的概念和结构2.2二叉树具备以下特点&#xff1a;2.3二叉树分类 3.满二叉树4.完全二叉树5.二叉树性质6.附&#xff1a;树和二叉树图示 前言 欢迎莅临姜行运主页…...

.NET代码保护混淆和软件许可系统——Eziriz .NET Reactor 7

.NET代码保护混淆和软件许可系统——Eziriz .NET Reactor 7 1、简介2、功能特点3、知识产权保护功能4、强大的许可系统5、软件开发工具包6、部署方式7、下载 1、简介 .NET Reactor是用于为.NET Framework编写的软件的功能强大的代码保护和软件许可系统&#xff0c;并且支持生成…...

运维打铁:Centos 7使用yum安装 Redis 5

文章目录 一、安装前信息说明二、安装 Redis三、创建 Redis 相关数据目录四、启动 Redis 服务五、修改 Redis 数据目录和端口1. 修改 Redis 配置文件 /etc/redis.conf2. 拷贝数据到数据目录并授权3. 重启 Redis 并连接访问 六、常见问题及解决办法1. Redis 安装失败2. Redis 服…...