2014-10-30 3 views
0

Я использую iText для разбора текста из файлов PDF. Я обнаружил, что текст возвращается, но не отображается. Например, я получилМожет ли iText распознать невидимый текст в PDF?

  • «финансовых производных», который не существует на странице
  • «ФИНАНСОВЫХ ПРОИЗВОДНОЙ», которая видна, но все-таки вернулся на IText. Кроме того, они не выбираются Adobe Acrobat или Foxit.

Имеет ли iText способ различать видимый/невидимый текст? Или в формате PDF есть какие-либо спецификации, относящиеся к этому?

Фэн

+2

Как этот конкретный текст сделан «невидимым»? Есть что-то на нем? Очень мало? Не имеет цвета или того же цвета, что и его фон? шрифт, не содержащий контуров? Отображается в шрифте, который отображает все на символ пробела? – usr2564301

ответ

2

Как вы не даете кода, трудно предположить, фактический код ... Тем не менее, обычный способ, чтобы сделать текст невидимым, чтобы использовать текстовый режим визуализации. Весь текст в формате PDF имеет такой режим визуализации текста и определяет, будет ли текст отображаться как заполненный текст (нормальный), поглаженный текст, заполненный и поглаженный ... И одна из возможностей - «невидимая», которая гарантирует, что текст isn ' t показано.

При анализе текста на странице iText, среди прочего, позволяет отфильтровать текст, который возвращается - см., Например, файл FilteredRenderListener. Во время фильтрации вы можете определить, интересуетесь ли вы текстом или нет. Существует много информации о тексте, который вы можете проверить, используя объект TextRenderInfo. Этот объект имеет метод, называемый «getTextRenderMode», который вернет указанный режим рендеринга текста. Если этот вызов возвращает «3», вы знаете, что текст отображается невидимо.

Теперь, если вы хотите знать, действительно ли этот текст действительно визуализирован невидимо (и не используя один из других неприятных трюков @jongware, предлагаемый в его комментарии, вам нужно будет ознакомиться с PDF или поделиться примером с нас так, что мы можем взглянуть.

+0

Интересно - этот режим рендеринга переводится на [этот «без штриха, без заполнения»] (http://stackoverflow.com/a/ 5184903/2564301) или действительно ли это часть спецификации PDF? (В этом случае я буду рад добавить его в мои трюки с сумкой!) – usr2564301

+1

(* одна из возможностей - «невидимая», которая гарантирует, что текст не отображается *) - * этот конкретный режим рендеринга преобразуется в этот «без штриха, без заполнения» или это фактически часть спецификации PDF * - Таблица 106 стандарта ISO 32000-1 описывает режим рендеринга 3 как ** Ни текст заливки, ни штрих (невидимый) **, поэтому ** без штриха, без заполнения ** и ** невидимого ** действительно должно совпадать. – mkl

Смежные вопросы