Ответ 1
Я искал одно и то же, и сегодня я нашел этот пост, который имеет некоторые подсказки:
http://www.random-ideas.net/posts/42
Похоже, что операторы являются "TJ" и "Tj".
Я пытаюсь выполнить функцию поиска в приложении PDF. Я прочитал руководство Quartz 2d в справочной библиотеке iphone. И так много говорится о "операторах pdf". Это, используя их, чтобы все было сделано, используя обратные вызовы для них.
Для информации о операторах pdf, мы должны прочитать pdf-ссылку на Adobe. Но это очень обширно. Может ли кто-нибудь дать мне представление о том, что эти операторы (или как получить представление об их изучении), и какие из них мне потребуются для "поиска строки в pdf"?
Я искал одно и то же, и сегодня я нашел этот пост, который имеет некоторые подсказки:
http://www.random-ideas.net/posts/42
Похоже, что операторы являются "TJ" и "Tj".
Не испугайтесь ссылкой в формате PDF. Его очень хорошо выложено, и вам действительно нужно только прочитать несколько глав, чтобы понять, как обрабатывается текст. Вы можете скачать его из Adobe:
Enrique корректен в том, что TJ и Tj - это операторы, которые отображают текст, но вполне возможно и даже нормально, что слова и предложения разбиваются на несколько операций. Вероятно, вам следует сосредоточиться на текстовых блоках, отмеченных BT и ET (начать текст/конец текста) в объекте PDF Stream.
PDFBox от Apache Project - очень полнофункциональная библиотека для работы с PDF-документами, посмотрите там.
Есть четыре оператора, которые отображают текст, а именно Tj, ', "и TJ. Когда вы настраиваете свою операторскую таблицу, вы должны избегать, по крайней мере, двойного кавычка.
CGPDFOperatorTableSetCallback(table, "\"", doubleQuot);
Я сделал то же самое для одиночной кавычки, просто чтобы быть уверенным.
Если вы внимательно прочтете главу "9.4.3" Операторы отображения текста "из ссылочного документа с чистым зарядным устройством, вы увидите, что операторы кавычек фактически состоят из нескольких более простых операторов, таких как Tj, но вы должны их искать в любом случае или вы можете пропустить какой-то текст.
Все эти операторы всегда находятся в контексте BT. Вы уже заметили, что сам оператор BT не имеет каких-либо параметров, но если вы отслеживаете текстовую матрицу (требуется только, если хотите сделать позиционирование), вы должны установить ее в единую матрицу.