Скопируйте содержимое из документа с целыми маркерами с помощью 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 ответ
Вам нужно будет правильно обработать определение нумерации (в части нумерации).
Самое надежное, что можно сделать, - это скопировать определение (как список экземпляров, так и абстрактный) через него и перенумеровать его (т.е. дать ему новый идентификатор), чтобы оно было уникальным.
Тогда, конечно, вам нужно обновить идентификаторы в вашем параграфе, чтобы соответствовать.
Обратите внимание, что вышеупомянутое является решением только для вопроса, который вы задали.
Вы столкнетесь с проблемами, если ваш контент содержит ссылку на какую-то другую часть (например, изображение). И вы не обращаетесь с определением стиля и т. Д.