Скопируйте содержимое из документа с целыми маркерами с помощью Apache POI

Я пытаюсь скопировать содержимое из файла DOCX в буфер обмена в конце концов. Код, который я создал до сих пор:

package config;

public class buffer {

    public static void main(String[] args) throws IOException, XmlException {
        XWPFDocument srcDoc = new XWPFDocument(new FileInputStream("D:\\rules.docx"));

        XWPFDocument destDoc = new XWPFDocument();
        OutputStream out = new FileOutputStream("D:\\test.docx");

        for (IBodyElement bodyElement : srcDoc.getBodyElements()) {
            XWPFParagraph srcPr = (XWPFParagraph) bodyElement;
            XWPFParagraph dstPr = destDoc.createParagraph();
            dstPr.createRun();
            int pos = destDoc.getParagraphs().size() - 1;
            destDoc.setParagraph(srcPr, pos);
        }

        destDoc.write(out);
        out.close();
    }
}

Это доставляет пули, но нумерует их. Я хочу сохранить исходный формат маркера. Есть ли способ сделать это?

1 ответ

Вам нужно будет правильно обработать определение нумерации (в части нумерации).

Самое надежное, что можно сделать, - это скопировать определение (как список экземпляров, так и абстрактный) через него и перенумеровать его (т.е. дать ему новый идентификатор), чтобы оно было уникальным.

Тогда, конечно, вам нужно обновить идентификаторы в вашем параграфе, чтобы соответствовать.

Обратите внимание, что вышеупомянутое является решением только для вопроса, который вы задали.

Вы столкнетесь с проблемами, если ваш контент содержит ссылку на какую-то другую часть (например, изображение). И вы не обращаетесь с определением стиля и т. Д.

Другие вопросы по тегам