【问题标题】:Find location of objects in PDF iOS在 PDF iOS 中查找对象的位置
【发布时间】:2013-04-08 09:29:49
【问题描述】:

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

【问题讨论】:

    标签: ios objective-c xcode pdf cgpdf


    【解决方案1】:

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

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

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

    【讨论】:

    • 您的 UI 视图是否绘制 A、B、C、D...?在那种情况下,为什么不使用固定值就不能在 PDF 中绘制它们?
    • 因为用户从未见过现有的问卷 PDF,请参阅我对您的回答的评论。
    【解决方案2】:

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

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

    - (NSData) renderViewToPDF:(UIView*)view
    {
        NSMutableData *pdfData = [NSMutableData data];
        NSDictionary  *pdfOptions = @{...};
    
        UIGraphicsBeginPDFContextToData(pdfData, _pageRect, pdfOptions);
    
        [questionaireView drawRect:questionaireView.bounds];
    
        UIGraphicsEndPDFContext();
    
        return pdfData;
    }
    

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

    【讨论】:

    • 感谢您的帮助,我可以很好地绘制 PDF。我的问题是我不知道每个问题的“A B C D ..”的坐标。我想知道是否有办法以某种方式在 pdf 树(?)中找到它们。不过我想通了(很难)。
    • 在您的应用程序中,您的视图不会绘制 A、B、C... 供用户选择吗?如果是这样,您的应用程序如何知道在哪里写 A、B、C...?还是原始问卷也是 PDF 格式的?
    • 该应用程序是对现有 PDF 问卷的改编,因此直到最后它才直接使用 PDF,并且用户希望将结果通过电子邮件发送给某人。
    • 这意味着在您的应用程序中,您正在绘制一个带有文本标签、字母 A、B、C、D... 的 UIView 供用户选择等等?除非我遗漏了什么?
    • 我在本地构建了一个完整的调查。因此提出了问题,并且用户在 UITableView 中选择了答案。当用户想要通过电子邮件将结果发送给某人时,PDF 绘图都发生在后台。它获取所有答案并将其转移到现有的 PDF 问卷中。
    猜你喜欢
    • 2012-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-25
    • 1970-01-01
    • 1970-01-01
    • 2013-07-08
    • 1970-01-01
    相关资源
    最近更新 更多