【问题标题】:IOS embed font in PDFIOS在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 规范自行嵌入字体...

标签: objective-c ios cocoa-touch ipad


【解决方案1】:

我不知道为什么,但是,在我参与的应用程序中,我们遇到了这个问题,一旦我们从使用开放式字体切换到真正的字体,它就可以工作了。

【讨论】:

    【解决方案2】:

    作为更新:在 iOS 8 之前,字体需要 TTF 才能嵌入到 pdf 中,但 iOS8+ 支持 OTF 字体嵌入。不需要特殊的魔法。

    【讨论】:

    • 谢谢!碰巧,你能建议一些参考你的陈述吗? (即 Apple 文档)
    • 没有参考,但来自实验(我在 iOS 7 之前有一个 OTF 字体,必须使用在线转换器才能使其工作。在 iOS 8 上再次尝试,工作正常。见appstore.com/thecraic - 它创建的 PDF 文件使用 OTF 字体 (Bravura)。
    猜你喜欢
    • 1970-01-01
    • 2010-10-12
    • 2015-02-16
    • 2014-11-06
    • 2016-08-29
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多