我有一个 PDF 文件,其中引用了 iOS 上不可用的 STSong-Light 字体。
因此我无法显示用该字体定义的正确字符。
我取了Apples KB上提到的STSong字体文件: http://support.apple.com/kb/ht1538
... 并将其放入我的项目中并将其添加到 plist 中。
现在不再呈现文本。
我正在使用 CGContextDrawPDFPage 来呈现我的 PDF 文件。
我的问题是:
我怎样才能正确地让我的字体文件正常工作,或者我能否以某种方式访问 iOS 上可用的字体来替换我的 PDF 中的 STSong 字体? (必须有其他亚洲字体,否则这些接口(interface)将无法使用)
提前感谢大家的帮助!
编辑:我从 Apple 那里得到一些反馈,我也可以使用字体替代,这意味着问题的第二部分应该是正确的方向。
添加:这是打开 PDF 文件的来源:
CFURLRef pdfURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, (CFStringRef)pdfFilename, kCFURLPOSIXPathStyle, false);
CGPDFDocumentRef pdfRef = CGPDFDocumentCreateWithURL((CFURLRef)pdfURL);
CFRelease(pdfURL);
CGPDFPageRef pdfPage = CGPDFDocumentGetPage(pdfRef, page);
[..]
最佳答案
字体可能不如编码重要。如果您正在为文档设置编码值,请尝试使用 0x80000421。我有一个使用 Helvetica 字体但字符串编码为 0x80000421 的汉字文本的应用程序
试试这个: 不要使用 CGURLCreateWithFileSystemPath(),而是尝试将文件内容加载到 NSData 对象中,并使用 CFURLCreateWithBytes() 使用该 NSData 内容,并使用 0x80000421 作为 CGStringEncodingRef 的值
关于iphone - 如何让亚洲字体在 iPad 上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3452024/