任何人都可以帮助从 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();
}
关于java - 从 AFP 文件中的字体模式 (FNG) 获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57664906/