自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 springboot @Validate注解与@ExceptionHandler注解原理分析

在接口编写时,我们常常需要对输入参数做校验,并返回校验结果。以往需要自己在每个接口调用检验方法,并且调用校验结果生成方法。spingboot有很方便的处理方式,即@Validate注解,该注解功能很多,详见@Validated注解详解,分组校验,嵌套校验,@Valid和@Validated 区别,Spring Boot @Validated_昌杰的攻城狮之路的博客-CSDN博客_@validated注解技术栈:spring boot2.3.3.RELEASEhibernate-validator文末附项目源

2022-06-10 10:57:31 690

原创 记录两个遇到的坑

1.mysql order by insert_time desclimit问题2.fastjson反序列化问题1.版本为mysql8.0,order by的字段为timestamp类型,默认值为CURRENT_TIMESTAMP,因为是统一批次入库,所以值全部相同。这时如果使用limit进行分页会导致某些页有重复数据的情况。[慎入]MySQL使用order by + limit语句的坑 - 知乎。由于这篇博客已经写的很详细了我就不再赘述。2.版本为com.alibaba.fastjson 1.

2021-12-02 14:19:17 166

原创 使用Puppeteer将HTML转为PDF

PDF是一种常见的印刷格式,有着在不同平台上显示一致的优点,同时PDF比起PNG图片又有着文字可复制的优点。HTML转PDF主要方法有这三种:1、使用Adobe Arobat的Chrome插件进行转换。2、使用itext-pdf进行转换。3、使用Chrome的“打印”功能进行转换。原始网址:https://mp.weixin.qq.com/s/qOWAKtCdMER8U29UExhulQ下面是三种转换方式的效果展示:这是使用Adobe Arobat的Chrome插件转换的效果

2020-11-25 15:49:23 1437

原创 IText+OpenCv抽取PDF表格

上期我们使用了IText解析PDF,这期我们需要使用OpenCv来识别PDF中的表格,然后用IText抽取单元格中的文本。本文适用的条件是“标准的表格”,也就是说,没有隐藏任何表格线的表格,当然,更不能是表格的图片,不然IText根本无法抽取文本。如果希望抽取有隐藏表格线的表格,可以试试PDFLux这款软件。标准的表格:不适用的表格:首先,我们需要使用Apache PDFBox将PDF渲染为png图片,注意的是渲染dpi。IText中抽取出的文字的坐标使用的是72dpi。由于

2020-10-29 15:38:04 2049 2

原创 itext操作PDF初探

PDF是一种常见的文档格式,因为能保证跨平台印刷质量而受欢迎,很多正式的文档都会以PDF格式发布。当然,也许编辑的时候是使用MS word,WPS等工具。网上流传的大部分资料都是关于抽取PDF文档中的纯文本,这样就会丢掉大部分的样式信息,导致显示时难以复原。下图是百度搜索PDF高亮效果。这样的效果显然难以令人满意。那么为什么PDF格式解析这么困难呢?先前我们尝试解析过word,发现其实是由许多个xml文件与资源文件组成的,word的正文本体其实是xml与html非常相似,学习过前端技术的同学

2020-09-29 14:43:09 672

原创 JAVA中文数字转换为数值

最近有项目需要对金额进行归一化处理,原始的格式有很多种,例如,30万、五十万、贰拾壹万伍仟,甚至还有“五万叁仟”这种。搜了下CSDN,大多都是数值转换为中文的,偶尔有两个中文转数值的只有源码没有说明,不是很敢用,所以只能自己研发。首先,我们可以把这些金额归为两类,一类是包含阿拉伯数字的,一类是纯中文的,这两类需要分开处理。对于包含阿拉伯数字的,基本上都是万以上的量级,常见的说法只有“xx万”,“xx百万”,乃至到“xx亿”。“xx百”,“xx千”这种并不符合常用说法。所以处理起来比较简单,只需要

2020-08-28 17:33:07 1523 3

原创 EasyOCR安装与简要效果测试

EasyOCR是一个用python编写的OCR三方库。git地址为:https://github.com/JaidedAI/EasyOCR。由于笔者从事的是java开发,对python并不熟悉,所以实际上是从python开发环境安装开始的。类似于jdk,python开发也依赖于python环境,而因为python各版本之间差异很大,很多时候不同组件依赖的是不同的python版本,甚至小版本之间也存在兼容性问题,所以网上推荐使用的是Anaconda环境管理软件。Anaconda可以隔离出多个pytho

2020-07-30 17:55:33 24689 7

原创 JAVA Apache POI解析docx格式的word文件并提取带样式文本

关于JAVA Apache POI读取word文档,网上资料很多,但是大多数还是仅仅提取文档中的纯文本,好一点的,也就提取所有图片,但是,word文档本身是具有样式的,这样简单粗暴的提取就会丢失字体、字号、颜色、粗体、斜体等一系列样式,也没有办法还原图片在文档流中的位置,没有办法提取出表格。docx格式的word文件实际上是一个压缩包,通过修改后缀名为rar后可用winrar打开,里面实际上是xml文件这是因为docx文件遵循了OfficeOpenXML规范,该规范内容很多,有兴趣的同学可以自行

2020-06-29 17:25:35 7207 4

原创 前后端分离产生的问题与解决办法

在几年以前,只要你掌握PHP,你就能编写一个自己的博客,这个时候,前端仅仅是作为Web项目的View层存在的。随着前端功能越来越复杂化以及手机APP的产生,前后端完全分离成为趋势,前端成为了一个完整的“客户端”,有了自己的MVVM(Model-View-ViewModel)框架,而后端则变为API可以同时提供给H5和APP。前后端分离后可能会部署在两个不同的服务器,从而导致协议、域名、端口不同。而变化往往就导致问题发生。问题1:为什么Ajax请求发送总是失败?这是因为浏览器有同源策略,所谓同源策略就

2020-05-24 19:49:22 2509

原创 MySQL join 算法初探

最近公司某业务模块需要优化mysql联表数据查询效率,虽然已经给查询字段添加了索引,并且使用临时表减少联表环节,但是由于部分表数据量很大(亿级),查询速度依旧很慢(十几分钟跑不出来结果)于是想了解一下mysql的join操作原理,下面是mysql官方文档对join操作的说明MySQL resolves all joins using a nested-loop join method. ...

2020-04-28 16:48:24 257

原创 inspeckage使用实战两例

实战1:某APP通过charles获取的数据如下图:很显然,请求参数和返回都做了加密处理,使用base64直接解密只会得到一串乱码一般情况下,可能要反编译apk,然后阅读被混淆的代码,找到加密的方式,那么有没有更快的方式呢?inspeckage这个xposed插件就能完美应对这个情况实验环境:PC win7 安卓sdk charles4.5.5魅蓝Note5 ...

2020-03-27 18:52:14 6035 3

原创 Tesseract-OCR试水

安装github地址:https://github.com/tesseract-ocr/tesseract由于测试是在win7环境下进行,我们选用Mannheim University包装过的版本github地址:https://github.com/UB-Mannheim/tesseract/wiki默认语言只支持英语,由于我们识别的是中文,我们需要下载中文模型包github地址:ht...

2020-02-28 11:38:55 524

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除