我试图用Apache POI将一定数量的段落从ms word文件复制到一个新文件中。虽然我复制段落样式没有问题,但我不能将内联字符样式转移到新文件中,如何获得字符样式并将其应用到新的新文档中?
FileInputStream in = new FileInputStream("oldDoc.docx");
XWPFDocument doc = new XWPFDocument(in);
XWPFDocument newDoc = new XWPFDocument();
// Copy styles from old to new doc
XWPFStyles newStyles = newDoc.createStyles();
newStyles.setStyles(doc.getStyle());
List<XWPFParagraph> paragraphs = doc.getParagraphs();
for (int p = 0; p < paragraphs.size(); p++) {
XWPFParagraph oldPar = paragraphs.get(p);
XWPFParagraph newPar = newDoc.createParagraph();
// Apply paragraph style
newPar.setStyle(oldPar.getStyle());
XWPFRun run = newPar.createRun();
run.setText(oldPar.getText());
}
FileOutputStream outNewDoc = new FileOutputStream("newDoc.docx");
newDoc.write(outNewDoc);
in.close();
outNewDoc.close();
try {
FileInputStream in = new FileInputStream("in.docx");
XWPFDocument oldDoc = new XWPFDocument(in);
XWPFDocument newDoc = new XWPFDocument();
// Copy styles from template to new doc
XWPFStyles newXStyles = newDoc.createStyles();
newXStyles.setStyles(oldDoc.getStyle());
List<XWPFParagraph> oldDocParagraphs = oldDoc.getParagraphs();
for (XWPFParagraph oldPar : oldDocParagraphs) {
// Create new paragraph and set it style of old paragraph
XWPFParagraph newPar = newDoc.createParagraph();
newPar.setStyle(oldPar.getStyle());
// Loop in runs of old paragraphs.
for (XWPFRun oldRun : oldPar.getRuns()) { // Paragrafın sitillere göre parçalanmış stringleri
// Create a run for the new paragraph
XWPFRun newParRun = newPar.createRun();
// Set old run's text of old paragraph to the run of new paragraph
String runText = oldRun.text();
newParRun.setText(runText);
// Set old run's style of old paragraph to the run of new paragraph
CTRPr oldCTRPr = oldRun.getCTR().getRPr();
if (oldCTRPr != null) {
if (oldCTRPr.sizeOfRStyleArray() != 0){
String carStyle = oldRun.getStyle();
newParRun.setStyle(carStyle);
}
}
// Add the new run to the new paragraph
newPar.addRun(newParRun);
}
// Write to file and close.
FileOutputStream out = new FileOutputStream("out.docx");
newDoc.write(out);
out.close();
}
} catch (IOException | XmlException e) {
e.printStackTrace();
}
关于字符和段落样式 字符样式是许多字符格式属性的集合,可应用于所选的文本范围。段落样式包括字符和段落格式属性,并可应用于所选段落,也可应用于段落范围。使用字符和段落样式可节省时间,还可确保格式的一致性。 可以使用“字符样式”和“段落样式”面板来创建、应用和管理字符和段落样式。要应用样式,只需选择文本并在其中的一个面板中单击样式名称即可。如果未选择任何文本,则会将样式应用于所创建的新文本。“段落样式
假设我的docx文档中有一个特定的段落,具有特定的文本格式,例如: Foo bar 我想制作一个类似于此段落的模板,以便多次将其复制到同一文档中。 复制文本,如 在示例中意味着文本格式丢失。 有没有任何通用的方法可以使用python docx库来实现这一点 我们还特别感谢python和django的其他解决方案<提前谢谢。
关于字符和段落样式 字符样式是许多字符格式属性的集合,可应用于所选的文本范围。段落样式包括字符和段落格式属性,并可应用于所选段落,也可应用于段落范围。使用字符和段落样式可节省时间,还可确保格式的一致性。可以使用 “字符样式 ”和 “段落样式 ”面板来创建、应用和管理字符和段落样式。要应用样式,只需选择文本并在其中的一个面板中单击样式名称即可。如果未选择任何文本,则会将样式应用于所创建的新文本。 C
我想计算两个字段的总和,然后在文档中创建新的字段,比如:“total sum”。但我不知道怎么做。都在MongoDB中。这里有一个例子:
假设我有两份文件。 一个是有大约2-3页的主模板。第二个只有一段文字与各种风格(粗体,斜体,下划线,字体大小等)。 我想用第二个文档中的段落替换模板中的一个参数。 null
在使用ApachePOI写入word文档时,对于必须根据某个“计数”动态复制段落的位置,这些段落的标题必须按照章节顺序编号。假设它是word文档中的第7节,那么其中每个段落的标题应按顺序编号为7.1、7.2等。 尽管我看到了一些解决方案,其中考虑了word文档的xml,并使用了XWPFN编号。 还有其他更简单的方法吗? 或 如果我的word模板已经有了一个带有编号标题的段落,并且我必须多次复制相同