0

我正在尝试突出显示 pdf 中的文本,并在文本下方绘制突出显示的矩形。

它在大多数 PDF 上都可以正常工作,但是当我试图突出显示的文本下面有图像/背景时,我遇到了一个问题。问题是高亮矩形也绘制在图像下方,因此不可见。

我的绘图顺序是这样的:

  • 用页面大小绘制一个空白矩形
  • 画出亮点
  • 使用 CGContextDrawPDFPage(context, page) 绘制 pdf;

有没有办法分别绘制 PDF 图像和文本?这样我就可以走了

  • 空白矩形
  • pdf图像/背景
  • 强调
  • pdf文本

我是否必须对 pdf / 上下文做一些事情,以便它按照我想要的方式自动绘制它?我试过弄乱上下文,但到目前为止没有任何效果,它全部绘制在完整的 pdf 之下或之上

我见过的每个读者都会这样做(PDFExpert、GoodReader、iAnnotate 等等),所以这不是不可能的,我只是还没有找到解决方案 :) 任何帮助都会有所帮助,在此先感谢!!

干杯

4

1 回答 1

1

我的理解是,这些其他应用程序本身正在阅读和呈现 PDF(例如,它们支持选择文本或添加注释),因此它们将能够更轻松地以您提到的方式对事物进行分层。

您开始使用的 CGPDFDocument 是一个不透明的对象(在 OO 意义上,不是透明度),它可以自己绘制,但我不知道有什么方法可以打破和渲染文档的各个子层。

作为一种前进的方式,您可以考虑使用 Core Image (iOS5+) 或其他方法将高光层与 PDF 混合。如果您使用了正确的过滤器(可能是正片叠底),较暗的文本仍然会通过,并且 0.3 alpha 高亮会与任何背景混合。

于 2012-08-10T22:45:12.557 回答