Как использовать WordToHtmlConverter для документов с RTL - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь преобразовать файлы .do c (и файл docx, но этот пакет не поддерживает его), используя org. apache .poi.hwpf.converter.wordToHtmlConvertor https://poi.apache.org/apidocs/dev/org/apache/poi/hwpf/converter/WordToHtmlConverter.html

Весь текст отформатирован как LTR на выходе HTML. Есть ли способ отформатировать направление текста?

Код, используемый ниже: Спасибо.

package docConverter;

import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.apache.poi.hwpf.HWPFDocumentCore;
import org.apache.poi.hwpf.converter.WordToHtmlConverter;
import org.apache.poi.hwpf.converter.WordToHtmlUtils;
import org.w3c.dom.Document;


public class docConverter {
    public static void main(String[] args)throws Exception
    {
        HWPFDocumentCore wordDocument = WordToHtmlUtils.loadDoc(new FileInputStream("data/test1.doc"));

        WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(
                DocumentBuilderFactory.newInstance().newDocumentBuilder()
                        .newDocument());
        wordToHtmlConverter.processDocument(wordDocument);
        Document htmlDocument = wordToHtmlConverter.getDocument();

        ByteArrayOutputStream out = new ByteArrayOutputStream();
        DOMSource domSource = new DOMSource(htmlDocument);
        StreamResult streamResult = new StreamResult(out);

        TransformerFactory tf = TransformerFactory.newInstance();
        Transformer serializer = tf.newTransformer();
        serializer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
        serializer.setOutputProperty(OutputKeys.INDENT, "yes");
        serializer.setOutputProperty(OutputKeys.METHOD, "html");

        serializer.transform(domSource, streamResult);
        out.close();

        FileOutputStream outputStream = new FileOutputStream("data/test1.html");
        outputStream.write(out.toByteArray());
        outputStream.close();

        System.out.println("Apache - Doc file converted in specified formats");
    }
}
...