Как сохранить формат текста и текстовый шрифт из PDF? - PullRequest
0 голосов
/ 22 сентября 2019

Я хочу извлечь текст из PDF с сохранением формата макета и стиля шрифта, используя Pdfbox

Я использую Pdfbox версии 2.0.16

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.tools.PDFText2HTML;

import io.github.jonathanlink.PDFLayoutTextStripper;

 try {
            InputStream is = new FileInputStream(new File("filpath.pdf"));// ..... Read PDF file
            PDDocument pdd = PDDocument.load(is); //This is the      in-memory representation of the PDF document.
            PDFText2HTML converter = new PDFText2HTML(); // the converter

            String html = converter.getText(pdd); // html but lost layout

            String text =    new PDFLayoutTextStripper().getText(pdd); // layout but lost font style


            pdd.close();
            is.close();
        } catch (IOException ioe) {
            // ......
        }

Я ожидал, что HTML-результат сохранит формат макета

1 Ответ

0 голосов
/ 23 сентября 2019

Это неправильный способ извлечь шрифт.Чтобы прочитать шрифт, нужно пройтись по страницам PDF и извлечь шрифт, как показано ниже:

PDDocument  doc = PDDocument.load("C:/mydoc3.pdf");
List<PDPage> pages = doc.getDocumentCatalog().getAllPages();
for(PDPage page:pages){
    Map<String,PDFont> pageFonts=page.getResources().getFonts();
}
...