2013-04-16 1 views
1

У меня есть PDF, который структурирован следующим образом:Найти расположение объектов в 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. 

Пользователь заполняет этот вопрос воздух в приложении и когда они закончили его нужно распечатать PDF вопрос воздух с выбранными «A, B, C, D, E, F, G» с кругом, нарисованным вокруг них.

Я могу загрузить PDF-файл и добавить к нему аннотации, но проблема в том, что я не знаю, как найти координаты «A, B, C, D, E, F, G», чтобы нарисовать круг вокруг Это. Нужно ли вообще программно понять это? Моим последним средством было бы открыть его в UIImageView и нарисовать все круги там, но это значительно сократит разрешение, что не очень хорошо.

ответ

0

Ну, я не смог найти простой способ найти координаты «AB C ..» для каждого вопроса в PDF, так что я,

  1. Добавлено прозрачном зрения
  2. добавлен в UISteppers, один для X и Y
  3. Добавлен ярлык для просмотра для отображения (х, у)
  4. нарисовал круг с UIGraphicsBeginPDFContextToData
  5. Кропотливо использовали степперы, чтобы переместить круг вокруг PDF к каждому «AB C .." в то время как принимая во внимание координаты.

Определенно не самое изящное решение, но программисты не всегда могут быть умными, я боюсь. Только занял около часа и закончил (на 30 вопросов).

+0

не отображает ваш пользовательский интерфейс A, B, C, D ...? И в таком случае, почему вы не могли бы нарисовать их в PDF, не прибегая к фиксированным значениям? – aLevelOfIndirection

+0

Поскольку пользователь никогда не видит существующий вопросник PDF, см. Мой комментарий к вашему ответу. – random

0

Я думаю, что вы можете ошибиться в этом. Поскольку пользователь заполняет вопросник в приложении, вы можете «рисовать» представления с кругами вокруг каждой выбранной буквы. Когда вы экспортируете PDF-файл, вы можете рисовать его с помощью контекста PDF.

Вот некоторые частичный код, чтобы вы начали:

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

    UIGraphicsBeginPDFContextToData(pdfData, _pageRect, pdfOptions); 

    [questionaireView drawRect:questionaireView.bounds]; 

    UIGraphicsEndPDFContext(); 

    return pdfData; 
} 

После вызова этого метода все, что вам нужно сделать, это записать данные в файл. Что касается рисования кругов, если вы используете пути безье, они основаны на векторе и, следовательно, независимы от разрешения.

+0

Благодарим за помощь, я могу нарисовать PDF-файл. Моя проблема заключалась в том, что я не знал координаты «A B C D ..» для каждого вопроса. Мне было интересно, есть ли способ найти их в дереве pdf (?) Каким-то образом. Я понял это (трудный путь). – random

+0

В вашем приложении не отображается ваш взгляд на A, B, C ... для выбора пользователем? Если да, то как ваше приложение знает, где писать A, B, C ...? Или оригинальный вопросник также PDF? – aLevelOfIndirection

+0

Приложение представляет собой адаптацию существующей PDF-анкеты, поэтому она напрямую не использует PDF до конца, и пользователь хочет отправить результаты по электронной почте кому-то. – random