ITextRenderer将PDF转换为HTML详细教程

引入依赖

   <dependency><groupId>org.xhtmlrenderer</groupId><artifactId>flying-saucer-pdf-itext5</artifactId><version>9.1.18</version></dependency>

 问题一:输出中文字体

下载字体simsun.ttc

下载链接:simsun.ttc · xiulian/fonts - Gitee.com

前端通过以下代码引入

@Font-face{
font-family:"myFont",
src:url("下载的字体的路径")
}

 后端通过一下代码引入

ClassPathResource resource=new ClassPathResource("assets/font/simsun.ttc");
font.addFont(resource.getUrl.toString(),Base.IDENTITY_H,BaseFont.EMBDDED)

问题二:设置页面大小以及页面间距 

@Page{
size:A4;
margin:0
}

问题三:报错<link>没有以</link>结束

解决方案:在html中所有结束符都要加上</..>结束,例如<img></img>、<meta></meta>

问题四:图片和二维码不显示

ip地址加端口号加对应路径,列如本地http://localhost:81/admin/asset/top/png

总代码

前端

前端的html正常写就可以了,需要注意的就是样式里面的@page定义PDF样式的和@font-face引入字体以及每个html标签必须有结束符

后端

@GetMapping()
public String exportPage(){
Ticket detail=ticketService.detail();
model.addAttribute("map",detail);
return "ticket/index";
}
public void export(TicketParam param){
//二维吗生成
String code="图片路径";
File file=FileUtil.file(code);
if(!file.exists()){
FileUtil.mkParentDirs(file);
}
}
QRCodeUtil.generate("字符串",100,100,file);
//获取html
//通过okhttp访问上面的url地址获取html页面

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/107764.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用html2canvas将html转pdf,由于table表的水平和竖直有滚动条导致显示不全(或者有空白)

结果&#xff1a; 业务&#xff1a;将页面右侧的table打印成想要的格式的pdf&#xff0c;首先遇到的问题是table表上下左右都有滚轮而html2canvas相当于屏幕截图&#xff0c;那滚动区域如何显示出来是个问题&#xff1f; gif有点模糊&#xff0c;但是大致功能可以看出 可复制…

form表单的三种封装方法(Vue+ElementUI)

form表单的三种封装方法&#xff08;VueElementUI&#xff09; 1.首先是最普通&#xff0c;也是大家最先想到的方法&#xff0c;直接封装&#xff1a;2.实现表单动态渲染、可视化配置的方法&#xff0c;动态表单又可以分为两种方法&#xff1a;(注意&#xff1a;注意 v-model 的…

互联网Java工程师面试题·Java 总结篇·第三弹

20、重载&#xff08;Overload&#xff09;和重写&#xff08;Override&#xff09;的区别。重载的方法能否根据返回类型进行区分&#xff1f; 方法的重载和重写都是实现多态的方式&#xff0c;区别在于前者实现的是编译时的多态性&#xff0c;而后者实现的是运行时的多态性。重…

SQL Server向表中插入数据

SQL Server向表中插入数据 切换到对应的数据库 use DBTEST插入数据 方式1 insert into 表名&#xff08;列名1,列名2) values&#xff08;数据1&#xff0c;数据2&#xff09;注意&#xff1a; 列名就算是字符类型也不用加引号&#xff0c;数据如果对应的字段是字符串类型&…

图像语义分割 pytorch复现U2Net图像分割网络详解

图像语义分割 pytorch复现U2Net图像分割网络详解 1、U2Net网络模型结构2、block模块结构解析RSU-7模块RSU-4Fsaliency map fusion module U2Net网络结构详细参数配置RSU模块代码实现RSU4F模块代码实现u2net_full与u2net_lite模型配置函数U2Net网络整体定义类损失函数计算评价指…

CSS3 新增属性-边框圆角-文字阴影-盒子阴影

边框圆角 CSS 边框圆角可以通过 border-radius 属性来实现。该属性用于设置元素的圆角大小&#xff0c;支持四个值分别表示上左、上右、下右和下左四个角的圆角半径大小&#xff0c;也可以使用两个值分别表示上下和左右两个方向的圆角大小&#xff0c;甚至可以只使用一个值来…

Unity之ShaderGraph如何实现上下溶解

前言 我们经常在电影中见到的一个物体或者人物&#xff0c;从头上到脚下&#xff0c;慢慢消失的效果&#xff0c;我么今天就来体验一下这个上下溶解。 主要节点 Position节点&#xff1a;提供对网格顶点或片段的Position 的访问 Step节点&#xff1a;如果输入In的值大于或等…

samba服务器的功能是什么

Samba服务器是一个开源的网络文件共享服务&#xff0c;其主要功能是在不同操作系统之间实现文件和打印机共享。它最常用于将Linux/Unix系统与Windows系统互联&#xff0c;但也支持其他操作系统。 以下是Samba服务器的主要功能&#xff1a; 文件共享&#xff1a;Samba允许用户在…

福昕阅读器打开pdf文档时显示的标题不是文件名

0 Preface/Foreword 1 现象 文件名为&#xff1a;Demo-20231017 打开效果&#xff1a;显示名字为 word template 2 解决方法 2.1 利用打印方式将word生产pdf 在word生产pdf文件时&#xff0c;使用打印方式生成pdf文档。 2.2 删除word文档设置的标题 文件---》信息---》标…

SQL中常用的递归查询

日常开发中&#xff0c;会遇到类似递归查询的SQL。比如&#xff1a;对于上下级机构号或者省市县联动查询这种&#xff0c;都可以使用递归查询去处理 举例SQL&#xff1a; select org_id from sys_org start with org_id 100001 connect by prior org_id up_org_id 对于该…

.NET Core/.NET6 使用DbContext 连接数据库,SqlServer

安装以下NuGet包 Microsoft.EntityFrameworkCore.SqlServer&#xff1a;SQL server 需要添加包 Microsoft.EntityFrameworkCore.Tools Newtonsoft.Json&#xff1a;用于Json格式转换 创建一个实体类来表示数据库表。在项目中创建一个名为Customer.cs的文件&#xff0c;并添加以…

deb包构建详解

deb包构建详解 一、deb包构建流程二、deb包构建描述文件详解2.1 control文件2.2 postinst 文件 (post-installation script)2.3 postrm 文件 (post-removal script)2.4 prerm 文件 (pre-removal script)2.5 preinst 文件 (pre-installation script)2.6 rules 文件2.7 changelog…

redis的应用

文章目录 一.分布式锁1.简易版2.Redisson 二.延时队列1.异步消息队列2.加锁冲突失败处理3.zset实现延迟队列 三.位图四.HyperLogLog1.基本命令2.实现原理 五.布隆过滤器六.简单限流1.实现2.缺点 七.漏斗限流八.GeoHash九.scan1.keys2.scan 一.分布式锁 可以保证操作的原子性。…

微信小程序--小程序框架

目录 前言&#xff1a; 一.框架基本介绍 1.整体结构&#xff1a; 2.页面结构&#xff1a; 3.生命周期&#xff1a; 4.事件系统&#xff1a; 5.数据绑定&#xff1a; 6.组件系统&#xff1a; 7.API&#xff1a; 8.路由&#xff1a; 9.模块化&#xff1a; 10.全局配置&…

运维 | 如何在 Linux 系统中删除软链接 | Linux

运维 | 如何在 Linux 系统中删除软链接 | Linux 介绍 在 Linux 中&#xff0c;符号链接&#xff08;symbolic link&#xff0c;或者symlink&#xff09;也称为软链接&#xff0c;是一种特殊类型的文件&#xff0c;用作指向另一个文件的快捷方式。 使用方法 我们可以使用 ln…

20个SQL查询优化技巧

以下值得关注的 20个SQL查询优化技术列表&#xff1a; 1.在庞大的表&#xff08;>1.000.000&#xff09;行上创建索引 2.使用 EXIST() 代替 COUNT() 查找表中的元素 3.用 SELECT 字段代替 SELECT * 4. 4.避免在 WHERE 子句中使用子查询 5. 5.尽可能避免 SELECT DISTINCT…

前端组件封装:构建模块化、可维护和可重用的前端应用

前端组件封装&#xff1a;构建模块化、可维护和可重用的前端应用 前端开发领域的快速演进已经将前端应用的规模和复杂性提升到了一个新的水平。在这个背景下&#xff0c;前端组件封装成为了一项关键实践&#xff0c;旨在构建模块化、可维护和可重用的前端应用。在本文中&#…

[C国演义] 第十五章

第十五章 最长湍流子数组环绕字符串中唯⼀的⼦字符串 最长湍流子数组 力扣链接 子数组 ⇒ dp[i]的含义: 以arr[i] 结尾的所有子数组中的最长湍流子数组的长度 子数组 ⇒ 状态转移方程根据 最后一个位置来划分&#x1f447;&#x1f447;&#x1f447; 初始化: 都初始化为…

电力物联网关智能通讯管理机-安科瑞黄安南

众所周知&#xff0c;网关应用于各种行业的终端设备的数据采集与数据分析&#xff0c;然后去实现设备的监测、控制、计算&#xff0c;为系统与设备之间建立通讯联系&#xff0c;达到双向的数据通讯。 网关可以实时监测并及时发现异常数据&#xff0c;同时自身根据用户规则进行…

乡村新业态 | 直播电商引领经济发展,拓世法宝AI智能直播一体机助推乡村振兴

党的二十大报告作出加快建设数字中国、全面推进乡村振兴的战略部署&#xff0c;为进一步加强数字乡村建设、全面推进乡村振兴指明了方向。近年来&#xff0c;随着乡村新业态新模式的不断涌现&#xff0c;以直播电商为代表的数字经济为各地的农村产业升级带来了新契机。各地政府…