Free Support Forum - aspose.com

我想给一个段落里面不同的内容设置不同的样式

如附件所示,我想给一个段落里面不同的字体内容设置不同的字体样式,test.doc是我的测试文档,expect.doc是我的期望文档,expect.png是具体的期望图片。help5.zip (14.8 KB)

@liyong199466

请注意,格式化适用于几个不同的级别。 例如,让我们考虑简单文本的格式。 文档中的文本由Run元素表示,并且Run只能是Paragraph的子代。 您可以应用格式

  • 通过使用字符样式来运行节点,例如 字形样式。
  • 到那些“运行”节点(即“段落”节点)的父级(可能通过“段落样式”)。
  • 您还可以使用运行属性(Font)将直接格式应用于运行节点。 在这种情况下,运行将继承段落样式,字形样式的格式,然后直接格式化。

文档的所有文本均以文本形式存储。 Run只能是Paragraph的子代。 对于您的情况,建议您使用Run.Font属性设置特定“运行”节点的字体格式。

你好,因为我不太明白你说的情况,所以有没有具体的代码体现。

@liyong199466

我们建议您阅读以下有关格式化Aspose.Words的文本和文档对象模型的文章。
Aspose.Words文档对象模型
使用DocumentBuilder修改文档

以下代码示例显示如何设置“段落”节点的样式和“运行”节点的字体格式。

Document doc = new Document(MyDir + "in.doc");
//获取第一段并设置其样式
Paragraph paragraph = (Paragraph)doc.getChild(NodeType.PARAGRAPH, 0, true);
paragraph.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_1);

//获取段落的第二个“运行”节点并设置其字体格式

Run run  = paragraph.getRuns().get(1);

run.getFont().setSize(16.0);
run.getFont().setBold(true);

doc.save(MyDir + "19.11.docx");

你好,用你的代码依然不能解决我的问题,有没有其他的方式解决

@liyong199466

请阅读我以前的文章中的建议文章。

我之前的文章中共享的代码示例演示了如何使用Run.Font属性应用段落的样式和直接格式化。 您可以根据您对模式的要求编写代码。

您可以使用以下代码示例来满足您的要求。 同样,可以使用Run.Font属性设置段落中其他文本的字体格式。 希望这对您有所帮助。

Document doc = new Document(MyDir + "test.doc");
Paragraph paragraph = (Paragraph)doc.getChild(NodeType.PARAGRAPH, 0, true);

//获取段落的第一个“运行”节点并设置其字体格式
Run run  = paragraph.getRuns().get(1);

run.getFont().setSize(18.0);
run.getFont().setName("Times New Roman");

Run run2  = paragraph.getRuns().get(3);
run2.getFont().setSize(18.0);
run2.getFont().setName("Times New Roman");

Run run3  = paragraph.getRuns().get(5);

run3.getFont().setSize(18.0);
run3.getFont().setName("Times New Roman");

Run run4  = paragraph.getRuns().get(7);

run4.getFont().setSize(14.0);
run4.getFont().setName("FangSong_GB2312");

doc.save(MyDir + "19.11.docx");