将PDF文本写入iOS中的PDFContext

时间:2012-05-11 18:29:37

标签: objective-c ios pdf-generation core-graphics

通过以下方式绘制到pdf上下文非常简单:

UIGraphicsBeginPDFContextToFile(pdfFile, CGRectZero, nil);
UIGraphicsBeginPDFPageWithInfo(sheet.frame, nil);    
CGContextRef ctx = UIGraphicsGetCurrentContext();

CGRect text_rect = ...
NSFont *font = ...
NSString * str = @"foo";
[str drawInRect:text_rect withFont:font];

...draw to context...

然而,文本显然是光栅化的......无论如何实际上将 pdf 样式文本添加到pdf文件中?因此,用户可以选择它,复制它等。可能通过核心图形以外的库?

1 个答案:

答案 0 :(得分:1)

这绝对有可能。 Here's a tutorial演示如何在iOS 5中生成和显示带有文本的PDF文档。

当我下载并运行项目时,放大时文本似乎没有光栅化。当我在OS X中预览中打开生成的PDF时,我可以选择并复制文本。

此示例使用Core Text将文本绘制到CGContext中。如果您想进行实验,应该可以轻松更改+[PDFRenderer drawText]以尝试其他方法。

例如,我将其更改为使用与您类似的代码,并且工作正常:

CGRect text_rect = { 0, 100, 300, 50 };
UIFont *font = [UIFont systemFontOfSize:12];
NSString * str = @"Added foo bar";
[str drawInRect:text_rect withFont:font];