业务需要使用斜体
问题描述
设置字体属性的时候使用Font.ITALIC 发现无效,粗体有效:Font.BOLD
原因分析:
业务部署的机器使用的JDK是openjdk,openjdk不支持Font.ITALIC 的渲染,oracle jdk才支持
解决方案:
只能手动使用变换实现斜体,这里用到仿射变换矩阵
Font.createFont(Font.TRUETYPE_FONT, new File("字体路径")).deriveFont(AffineTransform.getShearInstance(-0.18, 0));
只要调整x轴的倾斜角度就能实现不同角度的斜体,试验了发现-0.18是最接近Font.ITALIC角度的斜体



