Как выделить строки текста в PDF, а затем выделить их? (iOS)

Я искал аннотацию PDF в Google, stackoverflow и библиотеке разработчиков Apple, но ни один из них не удовлетворяет мои потребности. Вот моя проблема и мои текущие знания о ней, пожалуйста, поправьте меня, если я ошибаюсь.

Я хотел бы позволить пользователям сначала выделить несколько строк текста для выделения, а затем нарисовать прямоугольники выделения поверх них.

[Вопрос]: Как мы можем выбрать текст на странице PDF, отображаемой с помощью CGContextDrawPDFPage()? В частности, если бы мне нужно было переопределить методы делегата touchesBegan/Moved/Ended, что мне делать в там, чтобы отслеживать текстовый фрейм, который пользователь хочет выбрать?

Я не хочу использовать FastPDFKit, потому что он отображает логотип и стоит денег, или UIWebView, потому что он очень ограничен с точки зрения того, что мы можем с ним делать, плюс я хотел бы научиться делать это сам :-)

Спасибо! Дерек

-- ОБНОВЛЕНИЕ --

Возможное решение: я мог бы, вероятно, поместить прозрачный вид поверх своего PDF-файла и при анализе содержимого PDF построить прямоугольник для каждого Tj или каждого строкового элемента в TJ. Эти прямоугольники будут выбираемым «текстом», который пользователи могут выделить. Одно предостережение заключается в том, что некоторые PDF-файлы объединяют несколько слов в один Tj, поэтому в этом случае пользователи не могут выбирать отдельные слова. Я попробую этот подход и обновлю результат позже.


person Derek Sun    schedule 03.05.2012    source источник
comment
Вы нашли какое-либо решение, пожалуйста, дайте мне знать, так как мне тоже нужно сделать то же самое.   -  person Saurabh Prajapati    schedule 18.08.2017


Ответы (1)


Ваше потенциальное решение - это путь. Размер ограничивающего прямоугольника строки Tj представляет собой сумму ограничивающих прямоугольников каждого глифа в строке, поэтому вы можете выбрать что угодно в строке. Библиотека PDFKitten может помочь вам с обработкой текста: https://github.com/KurtCode/PDFKitten

person iPDFdev    schedule 04.05.2012
comment
Спасибо iPDFdev. Рад узнать, что я на правильном пути. Я приму ваш ответ, как только закончу ;-) - person Derek Sun; 04.05.2012
comment
@DerekSun Ты решил это? если да, то как вы использовали код PDFKitten? - person laucel; 16.07.2013