【问题标题】:PDF Highlighting above image / below textPDF 在图像上方/文本下方突出显示
【发布时间】:2012-08-10 21:13:38
【问题描述】:

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

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

我的绘图顺序是这样的:

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

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

  • 空白矩形
  • pdf 图片/背景
  • 高亮
  • pdf 文本

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

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

干杯

【问题讨论】:

    标签: objective-c pdf annotations core-graphics highlight


    【解决方案1】:

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

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

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

    【讨论】:

    • 对我的代码进行了一些不那么小的调整(页面和注释没有在同一层呈现,所以没有混合 D:) 我得到了这个与 kCGBlendModeMultiply 一起工作。先生,您真是个天才。非常感谢!!!!
    猜你喜欢
    • 2012-12-24
    • 2018-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多