Почему Тика добавляет лишние пробелы при преобразовании PDF в html? - PullRequest
0 голосов
/ 28 мая 2020

У меня есть текст в текстовом документе, который я затем сохранил как файл pdf. Когда я конвертирую pdf в html с помощью Apache Tika, он добавляет дополнительные пробелы между предложениями и усекает предложения. Но я хочу, чтобы PDF-файл преобразовывался в html без этих пробелов и усечений предложений.

Код, который я использовал для преобразования PDF в html:

try {
            File file = new File("path/to/pdf");
            byte[] bytes = Files.readAllBytes(Paths.get(file.toURI()));

            Parser tikaParser = new AutoDetectParser();;
            ByteArrayOutputStream out = new ByteArrayOutputStream();
            Metadata metaData = new Metadata();
            ParseContext context = new ParseContext();
            SAXTransformerFactory factory = (SAXTransformerFactory) SAXTransformerFactory.newInstance();

            TransformerHandler textHandler = factory.newTransformerHandler();
            textHandler.getTransformer().setOutputProperty(OutputKeys.METHOD, "html");
            textHandler.getTransformer().setOutputProperty(OutputKeys.INDENT, "yes");
            textHandler.getTransformer().setOutputProperty(OutputKeys.ENCODING, "utf-8");
            textHandler.setResult(new StreamResult(out));

            ExpandedTitleContentHandler expandedTitleContentHandler = new ExpandedTitleContentHandler(textHandler);
            tikaParser.parse(new ByteArrayInputStream(bytes), expandedTitleContentHandler, metaData, context);

            String content= new String(out.toByteArray(), StandardCharsets.UTF_8);

            return content;
} catch (TransformerConfigurationException | TikaException | SAXException e) {
            e.printStackTrace();
}

Я хочу, чтобы html выглядел именно так, как выглядит содержимое pdf: The pdf content with the formatting that I want to keep

html, созданный из содержимое pdf: enter image description here

Как можно видеть, Тика добавляет лишние пробелы, обрезает предложения и удаляет стили формата pdf.

ВОПРОС :

Итак, как я могу настроить Tika или Tika AutoDetectParser, чтобы сохранить форматирование в файле pdf, как оно есть, и НЕ усекать, добавлять пробелы и удалять стили?

ОБНОВЛЕНИЯ:

Apache Версия пакетов Tika Core и Parsers: 1.24.1

...