Извлечение абзаца из PDF
Contents
[
Hide
]
Извлечение текста из PDF-документа в форме абзацев
Мы можем получить текст из PDF-документа, ищя определенный текст (используя “обычный текст” или “регулярные выражения”) с одной страницы или всего документа, или мы можем получить полный текст одной страницы, диапазона страниц или полного документа. Однако в некоторых случаях вам требуется извлечь абзацы из PDF-документа или текст в форме абзацев. Мы реализовали функциональность для поиска секций и абзацев в тексте страниц PDF-документа. Мы представили класс ParagraphAbsorber (как TextFragmentAbsorber и TextAbsorber), который может быть использован для извлечения абзацев из PDF-документов.
Итерация по коллекции абзацев и получение их текста
// Открыть существующий PDF файл
$document = new Document($inputFile);
// Создать экземпляр ParagraphAbsorber
$absorber = new ParagraphAbsorber();
$absorber->visit($document);
$responseData = "";
foreach ($absorber->getPageMarkups() as $markup) {
$i = 1;
foreach ($markup->getSections() as $section) {
$j = 1;
foreach ($section->getParagraphs() as $paragraph) {
$paragraphText = "\r\n";
foreach ($paragraph->getLines() as $line) {
foreach ($line as $fragment) {
$paragraphText = $paragraphText . $fragment->getText();
}
$paragraphText = $paragraphText . "\r\n";
}
$paragraphText = $paragraphText . "\r\n";
$responseData = $responseData . "Параграф " . $j++ . " секции " . $i++ . " на странице" . ":" . markup->getNumber();
$responseData = $responseData . $paragraphText;
$j++;
}
$i++;
}
}
// Сохранить извлеченный текст в выходной файл.
file_put_contents($outputFile, $responseData);