Каковы операторы pdf, необходимые для выполнения функции поиска в PDF файле в iphone sdk?

Я пытаюсь выполнить функцию поиска в приложении PDF. Я прочитал руководство Quartz 2d в справочной библиотеке iphone. И так много говорится о "операторах pdf". Это, используя их, чтобы все было сделано, используя обратные вызовы для них.

Для информации о операторах pdf, мы должны прочитать pdf-ссылку на Adobe. Но это очень обширно. Может ли кто-нибудь дать мне представление о том, что эти операторы (или как получить представление об их изучении), и какие из них мне потребуются для "поиска строки в pdf"?

Ответ 1

Я искал одно и то же, и сегодня я нашел этот пост, который имеет некоторые подсказки:

http://www.random-ideas.net/posts/42

Похоже, что операторы являются "TJ" и "Tj".

Ответ 2

Не испугайтесь ссылкой в ​​формате PDF. Его очень хорошо выложено, и вам действительно нужно только прочитать несколько глав, чтобы понять, как обрабатывается текст. Вы можете скачать его из Adobe:

Enrique корректен в том, что TJ и Tj - это операторы, которые отображают текст, но вполне возможно и даже нормально, что слова и предложения разбиваются на несколько операций. Вероятно, вам следует сосредоточиться на текстовых блоках, отмеченных BT и ET (начать текст/конец текста) в объекте PDF Stream.

PDFBox от Apache Project - очень полнофункциональная библиотека для работы с PDF-документами, посмотрите там.

Ответ 3

Есть четыре оператора, которые отображают текст, а именно Tj, ', "и TJ. Когда вы настраиваете свою операторскую таблицу, вы должны избегать, по крайней мере, двойного кавычка.

CGPDFOperatorTableSetCallback(table, "\"", doubleQuot);

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

Если вы внимательно прочтете главу "9.4.3" Операторы отображения текста "из ссылочного документа с чистым зарядным устройством, вы увидите, что операторы кавычек фактически состоят из нескольких более простых операторов, таких как Tj, но вы должны их искать в любом случае или вы можете пропустить какой-то текст.

Все эти операторы всегда находятся в контексте BT. Вы уже заметили, что сам оператор BT не имеет каких-либо параметров, но если вы отслеживаете текстовую матрицу (требуется только, если хотите сделать позиционирование), вы должны установить ее в единую матрицу.