【问题标题】:How to get asian fonts working on an iPad?如何让亚洲字体在 iPad 上工作?
【发布时间】:2011-03-27 23:48:50
【问题描述】:

我有一个 PDF 文件,其中引用了 STSong-Light 的字体,这在 iOS 上不可用。

因此我无法显示用该字体定义的正确字符。

我拿了 Apples KB 上提到的 STSong 字体文件: http://support.apple.com/kb/ht1538

... 并将其放入我的项目并添加到 plist。

现在不再呈现文本。

我正在使用 CGContextDrawPDFPage 来呈现我的 PDF 文件。

我的问题是:

我怎样才能正确地让我的字体文件正常工作,或者我能否以某种方式访问​​ iOS 可用字体来替换我的 PDF 中的 STSong 字体? (必须有其他亚洲字体,否则这些界面不起作用)

提前感谢大家的帮助!

编辑:我从 Apple 得到了一些反馈,我也可以使用字体替换,这意味着问题的第二部分应该是正确的方向。

添加:这是打开 PDF 文件的来源:

CFURLRef pdfURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, (CFStringRef)pdfFilename, kCFURLPOSIXPathStyle, false);
CGPDFDocumentRef pdfRef = CGPDFDocumentCreateWithURL((CFURLRef)pdfURL);
CFRelease(pdfURL);

CGPDFPageRef pdfPage = CGPDFDocumentGetPage(pdfRef, page);
[..]

【问题讨论】:

    标签: iphone objective-c ipad ios fonts


    【解决方案1】:

    字体可能不如编码重要。如果要设置文档的编码值,请尝试使用 0x80000421。我有一个应用程序使用 Helvetica 字体显示汉字文本,但字符串编码为 0x80000421

    试试这个: 不要使用 CGURLCreateWithFileSystemPath(),而是尝试将文件内容加载到 NSData 对象中并使用 CFURLCreateWithBytes() 使用该 NSData 内容并使用 0x80000421 作为 CGStringEncodingRef 的值

    【讨论】:

    • 能否请您发布函数调用来设置编码?谢谢!
    • translatorResponse = [[NSMutableString alloc] initWithData:connectionBuffer encoding:translationEncoding];
    • 了解您如何加载 PDF 以及如何尝试呈现其内容可能会更有帮助
    • 我已将打开 PDF 文件的行添加到问题中。数据使用 CGContextDrawPDFPage 呈现。
    • 我修改了我的答案,接下来我会尝试解决这个问题
    猜你喜欢
    • 1970-01-01
    • 2021-05-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-14
    • 2012-07-18
    • 2011-08-02
    • 1970-01-01
    • 2013-02-18
    相关资源
    最近更新 更多