1

我有一个结构如下的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 中打开它并在那里绘制所有圆圈,但这会显着降低分辨率,这并不好。

4

2 回答 2

0

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

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

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

    UIGraphicsBeginPDFContextToData(pdfData, _pageRect, pdfOptions);

    [questionaireView drawRect:questionaireView.bounds];

    UIGraphicsEndPDFContext();

    return pdfData;
}

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

于 2013-04-16T22:57:12.237 回答
0

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

  1. 添加了透明视图
  2. 添加到 UISteppers,一个用于 X 和 Y
  3. 添加了一个标签来查看以显示 (x,y)
  4. 画了一个圆圈UIGraphicsBeginPDFContextToData
  5. 煞费苦心地使用步进器将 PDF 周围的圆圈移动到每个“AB C..”,同时记下坐标。

绝对不是最优雅的解决方案,但恐怕程序员并不总是聪明。只花了大约一个小时就完成了(30 个问题)。

于 2013-04-18T01:33:00.040 回答