objective-c - 在 iOS 中将 PDF 文本写入 PDFContext

标签 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 文件中?所以用户可以选择它、复制它等等。可能是通过核心图形以外的库?

最佳答案

绝对有可能。 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];

关于objective-c - 在 iOS 中将 PDF 文本写入 PDFContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10556719/

相关文章:

objective-c - 如何显示来自单独 NIB 的工作表

ios - 在 Xcode 4.6.3 中安装自定义字体

ios - Restkit - 关系映射不起作用

ios - 在 WKWebview 中的 Safari 中打开新选项卡

ios - 继续收到 iOS 版 Google 地方信息的 REQUEST_DENIED

ios ShareKit 2.0 从 facebook 获取用户好友列表的方法?

ios - 使用 AVAudio 播放器问题播放多于 1 首歌曲

c# - 文件位置的字符串值为零,但存储值表示它不是

html - 如何从 HTML 创建 "accessible"PDF?

java - fo :data-cell overflow