在PDF iOS中查找对象的位置

时间:2013-04-16 05:08:26

标签: ios objective-c xcode pdf cgpdf

我有一个PDF结构如下:

 ________________________________________________________
|                                |                      |
| 1. This is a simple question   |  A  B  C  D  E  F  G |
|________________________________|______________________|
|                                |                      |
| 2. Another simple question     |  A  B  C  D  E  F  G |
|________________________________|______________________|

... all the way to the end of the page. 

用户在应用程序中填写此问题的空气,当它们完成时,需要使用所选的" A,B,C,D,E,F,G"打印PDF问题空气。用圆圈画出来。

我可以加载PDF并为其添加注释,但问题是我不知道如何找到" A,B,C,D,E,F,G"的坐标。在它周围绘制圆圈。无论如何以编程方式解决这个问题?我最后的办法是在UIImageView中打开它并在那里绘制所有圆圈,但这会显着降低分辨率,这不是很好。

2 个答案:

答案 0 :(得分:0)

我认为你可能会以错误的方式解决这个问题。由于用户在应用程序中填写问卷,您可以“绘制”#34;每个选定字母周围的圆圈视图。导出PDF时,请使用PDF上下文绘制视图。

以下是一些让您入门的部分代码:

- (NSData) renderViewToPDF:(UIView*)view
{
    NSMutableData *pdfData = [NSMutableData data];
    NSDictionary  *pdfOptions = @{...};

    UIGraphicsBeginPDFContextToData(pdfData, _pageRect, pdfOptions);

    [questionaireView drawRect:questionaireView.bounds];

    UIGraphicsEndPDFContext();

    return pdfData;
}

调用此方法后,您需要做的就是将数据写入文件。至于圆的绘制,如果你使用bezier路径,它们是基于矢量的,因此与分辨率无关。

答案 1 :(得分:0)

好吧,我无法找到一种简单的方法来为PDF中的每个问题找到“A B C ..”的坐标,所以我,

  1. 添加了透明视图
  2. 添加到UISteppers,一个用于X和Y
  3. 添加了一个标签以便查看以显示(x,y)
  4. UIGraphicsBeginPDFContextToData
  5. 绘制一个圆圈
  6. 精心使用步进器将PDF周围的圆圈移动到每个“A B C ..”,同时记下坐标。
  7. 绝对不是最优雅的解决方案,但程序员不能总是聪明我害怕。只花了一个小时才完成(30个问题)。