之前在一台电脑上使用冰蓝科技的sprire.pdf插件往pdf文件中写文字,功能已经实现出来了,但是后面这台电脑重新装了系统后,发现之前写入文字的功能又无法显示了,只能显示字母和数字。
经过几天的摸索后,发现原因竟然是电脑重装系统后,安装的办公软件没有把字体装全,导致没有华文中宋和黑体两种字体,这才导致显示不出来的。
后来我又卸载之前的办公软件,安装了一个增强版的office2016,结果黑体还是没有,但是花纹中宋还是显示出来了。
没办法,只能又去下载一个黑体字体的库,安装完成后才实现功能的。汗,耽误我好几天的时间。
下面贴出使用冰蓝科技的插件写入pdf文件的核心代码
public static void drawSignatureAndDate(String flowXY,String signatureName,String signatureData,PdfPageBase page,int fontSize,int x_offset,int y_offset){
//注意:字体必须是电脑本身已经安装了,才会显示,否则无法写入到pdf文件中
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("华文中宋", Font.PLAIN, fontSize),true);
double x=Double.parseDouble(flowXY.split("&")[0])+x_offset;
double y=Double.parseDouble(flowXY.split("&")[1])+y_offset;
String signature=signatureName+" "+signatureData;
page.getCanvas().drawString(signature, font, PdfBrushes.getBlack(), x, y);
}
flowXY:xy坐标
String signatureName:签署姓名
signatureData:签署日期
page和fontSize为pdf页和字体大小,见官网
x_offset,int y_offset:偏移量,有时候不是正好在xy坐标处写,而是需要偏移一段位置。
文章讲述了作者在重装系统后,使用冰蓝科技Spirre.pdf插件写入PDF的文字无法正常显示,原因是缺少华文中宋和黑体字体。安装增强版Office2016并未解决问题,最终通过下载并安装黑体字体库才修复了问题。
4169

被折叠的 条评论
为什么被折叠?



