Пометить содержимое в pdf - PullRequest
1 голос
/ 12 марта 2019

У меня есть PDF, который выглядит ниже. Я хотел бы отметить абзац как «абзац». Я много об этом искал, и есть способы создать тегированный pdf с нуля или преобразовать html-контент в тегированный pdf, но у меня не получилось пометить тегом существующий pdf.

Учитывая координаты, я могу пометить содержимое в формате PDF. В этом примере я хочу пометить абзац как тег абзаца. Спасибо.

**A sample pdf**

1. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, 
sed diam nonum- my nibh euismod ncidunt ut laoreet dolore magna aliquam erat volutpat. 
Ut wisi enim ad minim veniam, quis nostrud exerci taon ullamcorper 
sus- cipit lobors nisl ut aliquip ex ea commodo consequat. 

1 Ответ

3 голосов
/ 12 марта 2019

PDF не является форматом WYSIWYG.
Это не потому, что вы видите абзац, что компьютерная программа может его увидеть.

Фактически, PDF без тегов может выглядетьвот так (псевдо-pdf-код):

перейти к расположению 10, 700
установить активный шрифт Times New Roman
установить размер шрифта 12
установить цветк черному
нарисуйте глиф 'H'
перейдите к координате 10, 680
нарисуйте глифы 'Lorem'

Как видно из примера, инструкции ненужно нарисовать текст в порядке чтения.

Итак, первая проблема, с которой вы столкнулись, - это определить абзацы.Я работал в iText, я разговаривал с разными людьми в Adobe.Возможность распознать структуру в немаркированном PDF-документе не считается легкой проблемой.

Как только у вас есть эта структура (до уровня «эти глифы составляют линию» и «эти строки составляют абзац»).и т. д., это вопрос создания StructureTree

Но так как этот вариант использования (изменение тега PDF) никогда не считался возможным, iText (или любая другая библиотека PDF, насколько мне известно) не совсемпредназначен для того, чтобы вы могли (легко) это сделать.

Сам тег является частью отдельной структуры данных внутри PDF.У тегов могут быть дочерние элементы (например, для обозначения «этот абзац содержит эти строки»).Сам тег будет ссылаться на объекты (группы инструкций), которые являются его частью.

Таким образом, вы могли бы иметь:

  • эти инструкции (для визуализациистрока текста) составляют слово и формируют объект
  • эти объекты слова объединяются (с помощью тега) в объект строки
  • несколько тегов строки объединяются в объект абзаца

Для полного понимания, я рекомендую прочитать спецификацию PDF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...