Я новичок в POI.
когда я объединяю более одного документа с одним и тем же семейством шрифтов (Airal, Calibri, Times New Roman), с объединенным документом проблем не возникает. Например, если у меня есть два документа с одним и тем же семейством шрифтов Calibri, проблем с объединением документов не возникнет. Он сохраняет и выводит исходное форматирование.
Однако объединение разных документов с разными шрифтами Faimly приводит к путанице. Например, если у меня более одного документа Airal, Calibri, исходное форматирование не сохраняется. особенно второй документ. Первый вариант подходит для комбинированного документа
1. Что я делаю неправильно и как этого избежать?
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBody;
import org.apache.xmlbeans.XmlOptions;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class ClearCTBodyAndAppend {
public static void main(String[] args) {
try (FileInputStream fis1 = new FileInputStream("path/to/your/first_document.docx");
XWPFDocument document1 = new XWPFDocument(fis1);
FileInputStream fis2 = new FileInputStream("path/to/your/second_document.docx");
XWPFDocument document2 = new XWPFDocument(fis2)) {
// Append the body of the second document to the first
CTBody ctBody1 = document1.getDocument().getBody();
CTBody ctBody2 = document2.getDocument().getBody();
appendBody(ctBody1, ctBody2);
// Save the modified document
try (FileOutputStream fos = new FileOutputStream("path/to/your/combined_document.docx")) {
document1.write(fos);
}
} catch (IOException e) {
e.printStackTrace();
}
}
private static void appendBody(CTBody src, CTBody append) {
try {
XmlOptions optionsOuter = new XmlOptions();
optionsOuter.setSaveOuter();
String appendString = append.xmlText(optionsOuter);
String srcString = src.xmlText();
String prefix = srcString.substring(0, srcString.indexOf(">") + 1);
String mainPart = srcString.substring(srcString.indexOf(">") + 1, srcString.lastIndexOf("
Подробнее здесь: https://stackoverflow.com/questions/787 ... formatting
Добавление документа с использованием POI с сохранением исходного форматирования ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Есть ли у кого-нибудь опыт изменения файлов .docx с сохранением стиля исходного документа?
Anonymous » » в форуме Python - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-