【问题标题】:PDF Annots on iOS with Quartz带有 Quartz 的 iOS 上的 PDF 注释
【发布时间】:2011-03-01 15:49:04
【问题描述】:

嗯,花了几天时间尝试在我的 iPad 应用程序上获取 PDF 注释。 我正在使用以下代码来获取注释,是的!有用 :) 但是 rect 值与 IOS rect 值完全不同。 我无法弄清楚如何将 UIButtons 放置在注释应该在的位置。 例如,我在pdf文件的左上角有一个注释。

我的 /Annots/Rect 值是 1208.93、2266.28、1232.93、2290.28(什么?!)

如何将 PDF /Annots /Rect 值转换为 iOS x 和 y 坐标?

CGPDFPageRef page = CGPDFDocumentGetPage(doc, i+1);

CGPDFDictionaryRef pageDictionary = CGPDFPageGetDictionary(page);

CGPDFArrayRef outputArray;
if(!CGPDFDictionaryGetArray(pageDictionary, "Annots", &outputArray)) {
    return;
.... .... ....}

【问题讨论】:

  • 您找到解决方案了吗?我很想知道你做了什么,因为我需要做同样的事情
  • 你在使用哪一个?我的意思是哪个框架以及你是如何做到这一点的?

标签: ipad ios pdf


【解决方案1】:

我认为这些坐标位于 PDF 的“默认用户坐标空间”中。您需要应用将它们发送到屏幕坐标的转换。您可以使用CGPDFPageGetDrawingTransform 来获得这样的转换。确保您使用相同的转换来绘制页面和注释。

【讨论】:

    【解决方案2】:

    我不确定这是否是问题,但 Quartz 2D 坐标系从左下角开始。

    有关详细信息,请参阅 Quartz 2D 编程指南的Coordinate Systems

    附言。如果你得到它的工作,我想看看结果代码的注释。

    编辑:

    刚刚找到这段代码(未测试):

    // flip context so page is right way up
    CGContextTranslateCTM(currentContext, 0, paperSize.size.height);
    CGContextScaleCTM(currentContext, 1.0, -1.0); 
    

    Source

    【讨论】:

      猜你喜欢
      • 2011-07-10
      • 1970-01-01
      • 2012-07-15
      • 1970-01-01
      • 2015-12-12
      • 2014-11-28
      • 1970-01-01
      • 2012-12-05
      • 1970-01-01
      相关资源
      最近更新 更多