Objective c PDF:字符代码->;字形名称->;NSString
继我之前的问题之后,尝试使用CGPDF*函数从PDF文件中提取文本,具有:Objective c PDF:字符代码->;字形名称->;NSString,objective-c,pdf,character,Objective C,Pdf,Character,继我之前的问题之后,尝试使用CGPDF*函数从PDF文件中提取文本,具有: CGPDFStringRef pdfString 我发现它可以转换为一组字符代码,如下所示: const unsigned char *characterCodes = CGPDFStringGetBytePtr(pdfString); 现在,我试图提取的文本是用14种Type1基本字体中的一种编写的,而PDF本身并没有编码。因此,我分析了该字体的相关AFM文件,给出了从字符代码到字形名称的映射,其尺寸如下: C 6
CGPDFStringRef pdfString
我发现它可以转换为一组字符代码,如下所示:
const unsigned char *characterCodes = CGPDFStringGetBytePtr(pdfString);
现在,我试图提取的文本是用14种Type1基本字体中的一种编写的,而PDF本身并没有编码。因此,我分析了该字体的相关AFM文件,给出了从字符代码到字形名称的映射,其尺寸如下:
C 61 ; WX 600 ; N equal ; B 80 138 520 376 ;
C 63 ; WX 600 ; N question ; B 129 -15 492 572 ;
C 64 ; WX 600 ; N at ; B 77 -15 533 622 ;
C 65 ; WX 600 ; N A ; B 3 0 597 562 ;
C 66 ; WX 600 ; N B ; B 43 0 559 562 ;
我的问题是,知道字符代码后,说:“61”如何从它的标志符号名称“equal”转换为NSString@“=”。
尤其是当该字符代码被重新映射到另一个字形名称时,比如说,PDF的字体编码选项“question”
以前的问题:
和
我还没有对此进行测试,但在我看来,您需要使用: Adobe Glyph命名约定的目的是支持 从字形序列计算Unicode字符串。 这是通过指定从字形名称到字符的映射来实现的 字符串 该页面上的链接似乎与您的问题相关。
样本片段: …
ε;03B5
epsilontonos;03AD
相等;003D
等单调空间;FF1D
相等小;FE66
等高;207C
那么你所需要做的就是 编辑:
确认上述信息后,我发现第5.9节-文本内容提取的以下解释: 如果字体是使用预定义编码之一的简单字体 MacRomanEncoding、MacExpertEncoding或WinAnsienceODing,或 一种编码,其差异数组仅包括字符名 取自Adobe标准拉丁字符集和命名字符集 符号字体中的字符(见附录D):
非常感谢,我现在正忙着另一个项目。一旦我有时间核实你的答案,我会接受它。谢谢你,yms,我实际上也读过PDF参考文件的大纲,它当时对我来说没有意义。谢谢!