任何人都可以帮助从 AFP 文件的“字体模式 (FNG)”字段中获取文本。是否有任何可用于此任务的库(最好是 Java)?
谢谢,
你可以试试afplib。它有一些示例代码转储所有结构化字段 (org.afplib.samples.DumpAFP)。它产生如下输出:
...
FNG number:47,offset:49787,id:13889161,length:8201,rawData:null,charset:null,PatData:[B@4e3958e7,
FNG number:48,offset:57988,id:13889161,length:8201,rawData:null,charset:null,PatData:[B@77f80c04,
FNG number:49,offset:66189,id:13889161,length:8201,rawData:null,charset:null,PatData:[B@1dac5ef,
FNG number:50,offset:74390,id:13889161,length:6991,rawData:null,charset:null,PatData:[B@5c90e579,
EFN number:51,offset:81381,id:13871497,length:17,rawData:null,charset:null,RSName:C0EX0480,
您可以使用二进制数组 PatData 来提取字体模式,如下所示:
try (AfpInputStream in = new AfpInputStream(
new BufferedInputStream(new FileInputStream(args[0])))) {
SF sf;
while((sf = in.readStructuredField()) != null) {
if(sf instanceof FNG) {
byte[] pattern = ((FNG)sf).getPatData();
}
}
} catch (IOException e) {
e.printStackTrace();
}