如何在 iPad 上使用亚洲字体?

发布于 2024-09-13 22:05:22 字数 858 浏览 2 评论 0原文

我有一个 PDF 文件,其中包含 STSong-Light 的字体参考,该文件在 iOS 上不可用。

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

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

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

现在不再呈现文本。

我正在使用 CGContextDrawPDFPage 来渲染我的 PDF 文件。

我的问题是:

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

提前感谢大家的帮助!

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

补充:这是打开 PDF 文件的来源:

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

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

I have a PDF file with a font reference to STSong-Light which is not available on the iOS.

Therefor I can not display the correct characters defined with that font.

I took the STSong font file mentioned on Apples KB:
http://support.apple.com/kb/ht1538

… and put it into my project and added it to the plist.

The text is now no longer being rendered.

I'm using CGContextDrawPDFPage to render my PDF files.

My question is:

How can I correctly get my font file working OR can I somehow access on the iOS available fonts to replace STSong fonts in my PDF?
(there must be other asian fonts, otherwise these interfaces wouldn't work)

Thank you all in advance for your help!

Edit: I got some Feedback from Apple that I could also use a font-substitute which means the second part of the question should be the right direction.

Added: This is the source which opens the PDF Files:

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

孤芳又自赏 2024-09-20 22:05:22

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

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

The font may not be as important as the encoding. If you are setting the encoding value for the document, try using 0x80000421. I have an application that presents Kanji text using the Helvetica font but with a string encoding of 0x80000421

Try This:
Instead of using CGURLCreateWithFileSystemPath(), try loading the file contents into an NSData object and use CFURLCreateWithBytes() using that NSData contents and use 0x80000421 as the value for CGStringEncodingRef

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文