之前的文章有介绍利用Puppeteer部署Docker,生成截图,详见:https://blog.terrynow.com/2022/10/29/use-node-puppeteer-docker-mingalevme-screenshoter-as-service-to-fullscreen-screenshot-and-support-chinese/,不过并不能生成PDF,本次介绍另一个Docker镜像,是生成PDF的。 镜像地址是: https://hub.docker.com/r/hmtx/puppete…

2022-12-13 0条评论 952点热度 0人点赞 admin 阅读全文

一、前言 策略模式可能是在工作中使用最多的,也是在面试中最常提到的,代码重构和优化的必备!小编之前也是一直说,其实没有真正的实战;最近有了机会实战了一下,来分享一下使用心得和在企业级的使用! 二、策略模式 1. 什么是策略模式 策略模式,英文全称是 Strategy Design Pattern。在 GoF 的《设计模式》一书中,它是这样定义的: 定义一族算法类,将每个算法分别封装起来,让它们可以互相替换。策略模式可以使算法的变化独立于使用它们的客户端(这里的客户端代指使用算法的代码)。 2. 策略模式结构组成 S…

2022-12-10 0条评论 458点热度 0人点赞 admin 阅读全文

Lombok使⽤ 同时使⽤@Data和@Builder ,构建无参构造器报错!编译不通过。如下图: Lombok使⽤@Data可以⽣成⽆参构造和类⾥⾯所有属性的getter/setter⽅法。可以简化我们代码的开发。(需要安装Lombok插件和引⼊Lombok依赖)。 例如下⾯的⼀个实体类,引⼊Lombok后,可以⾃动⽣成GET/SET⽅法和⽆参构造函数。 编译后的class为:可以看到不仅帮我们生成了get和set ,同时也有默认的无参构造器   那么怎么自动生成有参构造器呢?使用@Builder注解,…

2022-12-06 0条评论 647点热度 0人点赞 admin 阅读全文

默认情况下用ApachePOI生成的Excel,单元格Cell所在的那一列(Column)的宽度都很窄,用户下载后,需要每一个单元格都手动拉宽才能显示内容,比较不方便。 POI中可以有以上几种方式,从代码中设置单元格宽度: 宽度的参数要乘以256,这是怎么回事呢?其实,这个参数的单位是1/256个字符宽度,20 * 256 就是20个字符的宽度 # 我们假设要给单元格设置宽度是20 (以下都要将需要的宽度乘以256传进去) # 设置Sheet下所有的单元格的默认宽度是20 sheet.setDefaultColum…

2022-11-29 0条评论 1429点热度 0人点赞 admin 阅读全文

PDF本身对权限做了非常丰富的设定,例如编辑权限、打印权限等等。 itextPDF中对pdf文档的加密包括两部分,第一部分是用户密码,第二部分是所有者密码。 这两部分可以简单的理解为管理员密码和用户密码,因此我们在设置这两个密码的权限的时候,往往会将所有者密码的权限级别设置的更高,而用户密码权限往往是“只读”。 首先,在之前的基础上,我们要在引入一个jar包,bcprov-jdk15.jar 可以去maven里面下载或引入: <!-- https://mvnrepository.com/artifact/or…

2022-11-25 0条评论 1276点热度 0人点赞 admin 阅读全文

我们有时候需要在GET的参数中传递参数,例如是byte[]类型的内容,一般来说是转成Base64的编码格式,但是带来一个问题是:base64编码后,里面可能会出现一些字符是url里面冲突的,例如=+/这些,虽然可以URLEncode进行编码,但这还是会给程序带来一些复杂度或者不确定性。 关于URL编码的详细规范,可以查看RFC 3986, 这里只对我们会涉及的信息做简要说明。 RFC 3986中有如下两个重要规定: Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、- _ . ~4个特殊字符以及所有保留字…

2022-11-23 0条评论 1436点热度 0人点赞 admin 阅读全文

今天遇到个问题,之前一个jar包的程序,换了一个Linux环境部署(启动方式是java -jar xxx.jar),程序的某个功能是读取一个文件展示,读出来的文件是乱码的(在Linux上使用cat /path/to/file是正常的中文) java -jar启动的时候,可以附加encoding参数,便可解决乱码问题,示例如下: # 使用 -Dfile.encoding=GBK 主动增加编码设置,后面如果还有其他参数,这里省略(例如指定内存使用:-Xms2048M -Xmx4096M) java -jar -Dfil…

2022-11-17 0条评论 567点热度 0人点赞 admin 阅读全文

Java里使用普通数据类型进行计算时候,遇到浮点数运算的时候,经常会遇到出现这样的数字: 1.6666666666667 411.49999999999994 Java中的简单浮点数类型float和double不能够进行运算。不光是Java,在其它很多编程语言中也有这样的问题。在大多数情况下,计算的结果是准确的,但是多试几次(可以做一个循环)就可以试出类似上面的错误。现在终于理解为什么要有BCD码了。 这个问题相当严重,如果你有9.999999999999元,你的计算机是不会认为你可以购买10元的商品的。 在有的编…

2022-11-16 0条评论 478点热度 0人点赞 admin 阅读全文

需求是要给POI生成的Cell单元格内容加文字颜色(或者背景颜色),实操后发现,设置颜色并没有和之前的普通程序(例如Html里面给文字加颜色,可以是RBG或者#FF00FF这样的颜色) 下来面实例看下: Font font = workbook.createFont(); font.setBold(true); // 设置字体颜色是红色 font.setColor(HSSFColor.HSSFColorPredefined.RED.getIndex()); CellStyle cellStyle = workboo…

2022-11-09 0条评论 1781点热度 0人点赞 admin 阅读全文

现在很多Java项目都是SpringBoot的了,不过可能有部分还会是SpringMVC甚至还有JSP页面,这种项目在IDEA下开发时候可能遇到一个问题,使用Tomcat启动后,每次修改JSP页面或者JS/HTML/CSS等文件的内容后,直接查看网页效果有时候发现内容并没有改变。 点击运行Run -> 编辑配置Edit Configurations,在Tomcat的服务器Server Tab下面,找到:执行更新操作On 'Update' action和 切换处IDE时on frame deactivation…

2022-11-05 0条评论 520点热度 0人点赞 admin 阅读全文
1234521