2015-06-19 8 views
5

У меня есть pdf с водяным знаком на его фоне. Когда вы начинаете сканирование, чтобы выделить любое слово с водяным знаком или аннотацией на фоне, оно выбирается, поскольку оно находится сначала в области касания.

Я использую CGPDFScanner для сканирования текста.

Мой вопрос в том, как обнаружить, если отсканированный текст является текстом в фоновом режиме или в реальном тексте в формате PDF? Как я могу различать стандартный текст и текст аннотации?iOS - Различают текст фона (водяной знак) и реальный текст в PDF

Спасибо.

+1

К сожалению, я не могу загрузить PDF-файл, я нажимаю кнопку на странице службы обмена файлами, но страница просто обновляется. Тем не менее, вы, вообще говоря, не имеете возможности различать «фон» и «реальный» текст. В случае * помеченных * PDF-файлов у вас может быть шанс, аквапарк может быть помечен как артефакт. – mkl

+0

@mkl: просьба перевести свой комментарий в реальный ответ, чтобы получить мой взнос. :-) –

+0

@mkl Извините, что я снова отправлю файл. – Swaroop

ответ

3

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

Вы можете попробовать некоторые просвещенные догадки, например. предполагая, что «реальный» текст имеет сильные цвета, в то время как фоновый текст находится в более светлых тонах, или «реальный» текст расположен в горизонтальных линиях, в то время как фоновый текст часто более диагонален и т. д. Но ведь это догадка, о чем нельзя полагаться конечно.

С другой стороны, в случае помеченных PDF-файлов у вас может быть шанс, водяной знак может быть помечен как данные артефакта.

PS Я только что видел, что вы поделились своим файлом снова. В случае вашего документа эвристика, о которой я упоминал, будет работать, фоновый текст является серым и печатается по диагонали.

Таким образом, при сканировании вы должны отслеживать цвет заливки и/или матрицы преобразования. Как только сканер обнаружит текст, вы знаете, является ли он фоном или передним планом на основе текущего значения цвета и/или матрицы.

Помните, что все документы не так-то просто.

+0

Спасибо за ответ :). Я думал о догадках, основанных на высоте и ширине текста водяного знака. Это может быть одна из эвристик? Во время сканирования, прямоугольник, который я получаю для этого текста, занимает 3/4 страницы, поэтому я могу решить пропустить эту основу, а? Или это может пойти не так? – Swaroop

+0

Это еще одно правило эвристики. Но имейте в виду, эвристика - это догадки, и каждый раз они будут терпеть неудачу. – mkl

+0

Хорошо. Большое спасибо за помощь. :) – Swaroop