2012-02-06 3 views
0

Я пытаюсь извлечь атрибуты (шрифт, размер шрифта, цвет и т. Д.) Каждого слова в pdf-документе, используя библиотеку iText. Я мог извлечь текст с каждой страницы, но не с атрибутами. Также я не нашел ничего, что могло бы обеспечить то же самое. Пожалуйста, помогите мне.Получение текстовых шрифтов из pdf-файла с помощью iText

+0

Возможный дубликат [Как проверить, что все используемые шрифты встроены в PDF с помощью Java iText?] (Http://stackoverflow.com/questions/4646130/how-to-check-that-all-used-fonts- in-embedded-in-pdf-with-java-itext) –

ответ

0

Я не человек Java, поэтому я не могу дать вам рабочий код, но, надеюсь, я смогу получить вас на 95% пути туда.

Сначала вам нужно создать класс, который реализует интерфейс com.itextpdf.text.pdf.parser.TextExtractionStrategy

Затем вы можете передать экземпляр этого класса в качестве третьего параметра:

PdfTextExtractor.getTextFromPage(PdfReader reader, int pageNumber, TextExtractionStrategy strategy)

Одним из методов этого интерфейса - renderText, который вызывается для каждого обрабатываемого текстового блока. Когда он получает вызов, передается TextRenderInfo, в котором есть метод под названием getFont, который должен дать вам то, что вы ищете. Храните содержимое этого буфера в некотором роде, и после вызова getTextFromPage вы можете проверить этот буфер, чтобы увидеть каждый шрифт. Если вы хотите увидеть пример реализации этого интерфейса, найдите код для SimpleTextExtractionStrategy онлайн. В противном случае here's a C# version, что в значительной степени делает то, что вы ищете.

+0

Привет, Спасибо тон за ответ. Я не знал концепции функций обратного вызова в Java (например, здесь «renderText»). Я мог бы получить имена шрифтов, применяющие getFullFontName() для объекта из метода getFont(), упомянутого в документации «Document Font». :-) – srjit

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