У меня есть система, которая в конечном итоге создает файлы PDF из файла HTML. Это работает очень похоже на слияние почты. Он захватывает данные из базы данных, объединяет данные с держателями в html-документе, а затем преобразует html-файл в pdf.
При модульном тестировании html-файла я могу посмотреть значения в моем заполнителе. Например, если у меня был Джон Смит, и я хочу проверить, что это имя «Джон Смит», я просто смотрю значение div после слияния.
Мне нужно сделать что-то подобное с проверкой данных в PDF. Используя pdfbox и itext, я смог извлечь текст из местоположения, а также текст из документа, но я не могу найти ничего, что позволило бы мне создать «тег / заполнитель / ...» и извлечь из него информацию, аналогичную той, что Я делаю с html файлом.
Возможно ли это с pdf?
Я уже делал нечто подобное. Что мое руководство ищет от меня, чтобы создать что-то, что они могут получить в конечном результате (pdf) и проводить контроль качества через каждые 1000 или около того в производстве
Вы можете сравнить рендеринг ... но проблема в том, что рендеринг может немного отличаться в разных версиях jdk. Другой вариант - это PDF-файл с тегами, но он плохо поддерживается в PDFBox или его очень сложно сделать, а извлечение текста не имеет к нему никакого отношения. Третья идея - бусинки… они похожи на невидимые прямоугольники, которые огибают части текста. Ваш текст может получить эти бусинки и затем использовать их координаты для выделения области (требуется преобразование в экранные координаты). Не так сложно, как тегирование, но все же не так просто.
Это вполне возможно с помощью pdf2Data, который является решением из пакета iText.
Вы можете найти демо здесь
http://pdf2data.online/
По сути, он делает именно то, что вы описали, вам предоставляется средство просмотра и некоторые инструменты, которые позволяют вам определять области интересов (то, что вы назвали «заполнителями»).
Области интереса можно определить с помощью:
Затем инструмент сохраняет ваш шаблон в виде XML-файла, и вы можете использовать код Java или .NET для извлечения информации из PDF-файла, соответствующего шаблону.
Вам предоставляется структура данных в стиле json или XML-файл. Это должно упростить проверку того, содержит ли данная область интереса фрагмент текста.
Основываясь на вашем описании, я не уверен, что этот подход возможен, но вместо создания фактического PDF рассмотрите возможность издевательства над API, который генерирует PDF, чтобы иметь возможность проверить, что API был вызван с ожидаемыми значениями.