使用自定义字体在 CGContextRef 和 PDF 中打印 NSString
Posted
技术标签:
【中文标题】使用自定义字体在 CGContextRef 和 PDF 中打印 NSString【英文标题】:Print NSString in CGContextRef and PDF with a custom font 【发布时间】:2013-09-16 12:22:53 【问题描述】:我正在尝试使用自定义字体创建新的 PDF。
我加载了我的自定义字体,我可以在所有应用程序中使用它,但是当我尝试使用它创建我的 PDF 时,系统字体被打印出来。
我正在使用 NSString UIKit Additions。
+(UIFont *)imagoBook:(float)size
return [UIFont fontWithName:@"Imago-Book" size:size];
-(NSData *)createPDFfromUIView
NSMutableData *pdfData = [NSMutableData data];
UIGraphicsBeginPDFContextToData(pdfData, self.bounds, nil);
UIGraphicsBeginPDFPage();
UIFont *imagoBook13 = [ROCTextsInformation imagoBook:13];
[@"Test" drawAtPoint:CGPointZero withFont:imagoBook13];
UIGraphicsEndPDFContext();
// Retrieves the document directories from the ios device
NSArray* documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
NSString* documentDirectory = [documentDirectories objectAtIndex:0];
NSString* documentDirectoryFilename = [documentDirectory stringByAppendingPathComponent:@"t.pdf"];
// instructs the mutable data object to write its context to a file on disk
[pdfData writeToFile:documentDirectoryFilename atomically:YES];
NSLog(@"documentDirectoryFileName: %@",documentDirectoryFilename);
return pdfData;
事实上,我在视图中绘制了相同的上下文,字体写得很完美,但不是在 pdf 中。
我正在为字体使用 otf 文件。
谢谢
【问题讨论】:
什么是imagoBook10
?
这里的信息可能会让您感兴趣:***.com/questions/8980388/ios-embed-font-in-pdf
感谢 ipmcc 提供的信息。我做了更多的测试,我检查了问题可能出在文件字体“otf”的类型上。我已经用其他“otf”文件进行了测试,得到了相同的结果,但是我用“ttf”文件进行了测试,它工作得很好。
【参考方案1】:
我终于解决了将文件 .otf 转换为 .ttf 的问题,并且可以正常工作!
【讨论】:
以上是关于使用自定义字体在 CGContextRef 和 PDF 中打印 NSString的主要内容,如果未能解决你的问题,请参考以下文章