IOS在PDF中嵌入字体
Posted
技术标签:
【中文标题】IOS在PDF中嵌入字体【英文标题】:IOS embed font in PDF 【发布时间】:2012-01-24 00:03:03 【问题描述】:我正在绘制一个 PDF 文件,但不知道如何将字体嵌入到 PDF 本身中,有人可以帮我吗?它在设备上显示良好,但是一旦通过电子邮件发送或通过 AirPrint 打印,我就会得到备用字体。这是我的代码...
- (void) drawChart
CGContextRef currentContext = UIGraphicsGetCurrentContext();
CGContextSetRGBFillColor(currentContext, 0.0, 0.0, 0.0, 1.0);
NSUserDefaults *data = [NSUserDefaults standardUserDefaults];
NSString *pChart1 = [data stringForKey:@"pchart1"];
NSString *textToDraw = [NSString stringWithFormat:@"%@",pChart1];
UIFont *font = [UIFont fontWithName:@"MyFont" size:14];
CGSize stringSize = [textToDraw sizeWithFont:font
constrainedToSize:CGSizeMake(pageSize.width - 2*kBorderInset-2*kMarginInset, pageSize.height - 2*kBorderInset - 2*kMarginInset)
lineBreakMode:UILineBreakModeWordWrap];
CGRect renderingRect = CGRectMake(kBorderInset + kMarginInset, kBorderInset + kMarginInset + 50.0, pageSize.width - 2*kBorderInset - 2*kMarginInset, stringSize.height);
[textToDraw drawInRect:renderingRect
withFont:font
lineBreakMode:UILineBreakModeWordWrap
alignment:UITextAlignmentLeft];
任何帮助将不胜感激!
【问题讨论】:
我已经搜索了好几天,得出的结论是这可能是不可能的,所以现在我只是得到显示的图像就像这样UIGraphicsBeginImageContext(self.myChart.bounds.size); [self.myChart.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); NSData * chartdata = UIImagePNGRepresentation(image);
我也很想看到一个解决方案 - 我遇到了完全相同的要求。我添加了一个赏金来尝试更多地关注这个问题。
我有一个类似的问题,我想我已经解决了,但直到我可以尝试才知道。只是为了确定一下,您使用的是 OpenType 字体吗?
如果没有用于此的 API,似乎您可以从 PDF 上下文+数据使用者生成 PDF 数据,然后根据 PDF 1.7 规范自行嵌入字体...
【参考方案1】:
我不知道为什么,但是,在我参与的应用程序中,我们遇到了这个问题,一旦我们从使用开放式字体切换到真正的字体,它就可以工作了。
【讨论】:
【参考方案2】:作为更新:在 ios 8 之前,字体需要 TTF 才能嵌入到 pdf 中,但 iOS8+ 支持 OTF 字体嵌入。不需要特殊的魔法。
【讨论】:
谢谢!碰巧,你能建议一些参考你的陈述吗? (即 Apple 文档) 没有参考,但来自实验(我在 iOS 7 之前有一个 OTF 字体,必须使用在线转换器才能使其工作。在 iOS 8 上再次尝试,工作正常。见appstore.com/thecraic - 它创建的 PDF 文件使用 OTF 字体 (Bravura)。以上是关于IOS在PDF中嵌入字体的主要内容,如果未能解决你的问题,请参考以下文章