冰蓝科技spire.pdf写入到pdf文件时,中文无法显示的原因

     之前在一台电脑上使用冰蓝科技的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坐标处写,而是需要偏移一段位置。

你可能感兴趣的:(科技,pdf)