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