当前位置: 首页 > 知识库问答 >
问题:

将一个文档中的段落添加到另一个文档中

柏明亮
2023-03-14

假设我有两份文件。

一个是有大约2-3页的主模板。第二个只有一段文字与各种风格(粗体,斜体,下划线,字体大小等)。

我想用第二个文档中的段落替换模板中的一个参数。

    null
private static void replaceParagraph2(String placeholder, WordprocessingMLPackage template, ContentAccessor addTo) throws Exception {

//get the paragraph
WordprocessingMLPackage paragraph_template = getTemplate("./resources/input/paragraph.docx");
List<Object> paragraphs_LineList = getAllElementFromObject(paragraph_template.getMainDocumentPart(), P.class);

// get the template
List<Object> template_lineList = getAllElementFromObject(template.getMainDocumentPart(), P.class);
int position = 0;
P toReplace = null;
//find placeholder position
for (Object p : template_lineList) {
  List<Object> texts = getAllElementFromObject(p, Text.class);
  for (Object t : texts) {
    Text content = (Text) t;
    if (content.getValue().equals(placeholder)) {

      toReplace = (P) p;
      position = template_lineList.indexOf(toReplace);
      break;
    }
  }
}

//add paragraph into template
for (int i = 0; i < paragraphs_LineList.size(); i++) {

  P para = (P) XmlUtils.deepCopy(paragraphs_LineList.get(i));


  addTo.getContent().add(position + 1 + i, para);
}

// remove the placeholder on the template
((ContentAccessor)toReplace.getParent()).getContent().remove(toReplace);

共有1个答案

魏风华
2023-03-14

格式化来自直接格式化(在段落中的rPr和pPr元素中),也来自样式部分。如果未指定样式,则将使用默认样式。

您需要在段落和样式部分查看XML。

Microsoft Word(至少2010年)有一个有用的“显示格式”侧栏,可以帮助您了解格式来自哪里。点击底部的“区分样式源”。

 类似资料:
  • 我想让(start)中的文本成为文档中另一个具体(end)的超链接。我发现了一个在中制作超链接的代码,但它不起作用(启动链接开始):

  • 假设我有一个包含三种数据的ElasticSearch实例——作者、出版商和图书——都在JSON中。作者数据如下所示: ,发布者数据如下所示: ,则书籍数据如下所示: 到目前为止,每个都进入了自己的索引。 我想创建一个非规范化的数据版本,以便我可以轻松搜索加拿大作家撰写或兰登书屋出版的所有书籍。我需要支持对作者,出版商和书籍数据的更新,以便如果作者搬到新的国家/地区或更改其名称,非规范化的副本也将更

  • 我想计算两个字段的总和,然后在文档中创建新的字段,比如:“total sum”。但我不知道怎么做。都在MongoDB中。这里有一个例子:

  • 假设我的docx文档中有一个特定的段落,具有特定的文本格式,例如: Foo bar 我想制作一个类似于此段落的模板,以便多次将其复制到同一文档中。 复制文本,如 在示例中意味着文本格式丢失。 有没有任何通用的方法可以使用python docx库来实现这一点 我们还特别感谢python和django的其他解决方案<提前谢谢。

  • 我已经很多年没有使用VB了,所以如果这是显而易见的,请原谅我。我正在尝试编写一个word vba宏,以便在模板中使用,该模板将显示一个userform,然后导入fileA的内容。docx,fileB。docx或fileC。docx取决于用户表单。(之后我将使用书签填写一些表单数据,我不知道这是否相关)。文件A、B和C将包含一些基本格式(如列表)的文本,但没有什么特别之处。 我在网上看到的解决方案可

  • 问题内容: 将节点从一个文档复制到另一个文档时遇到问题。我已经使用了Node中的acceptNode和importNode方法,但是它们不起作用。我也尝试了appendChild,但是抛出了异常。我正在使用Xerces。那里没有实现吗?还有另一种方法吗? 问题答案: 问题在于,节点的上下文包含许多内部状态,其中包括其父项和拥有它们的文档。无论是也将目标文档,这就是为什么你的代码是没有的新节点的任何