Aspose.words.java设置标题

请将我附件word中的一级标题样式改为宋体,25号字。二级标题改为仿宋,18号字,新建文件夹.zip (2.7 KB)
谢谢。(用java代码)

@liyong199466

谢谢你的询问。 下面的代码示例演示如何设置“标题1”样式的字体。 请使用最新版本的Aspose.Words for Java 18.10。 我们已将输出文档附在此帖子中供您参考。output.zip (7.5 KB)

//如果您的JVM在英语文化下运行,请更改语言环境
Locale.setDefault(new Locale("zh", "CN"));

Document doc = new Document(MyDir + "1122.doc");

Style heading1 = doc.getStyles().getByStyleIdentifier(StyleIdentifier.HEADING_1);

heading1.getFont().setBold(true);
heading1.getFont().setSize(30.0);

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

你好,我在试过了你的方法以后还是一级标题的样式还是没有设置成功

@liyong199466

谢谢你的询问。 为确保及时准确的回复,请在此处附上以下资源进行测试:

  • 您输入的Word文档。
  • 请附加显示不良行为的输出Word文件。
  • 请附加显示所需行为的预期输出Word文件。
  • 请创建一个简单的Java应用程序(没有编译错误的源代码),它可以帮助我们在最后重现您的问题并将其附加到此处进行测试。

一旦您准备好这些信息,我们将立即开始调查您的问题,并为您提供更多信息。 谢谢你的合作。

PS:要附加这些资源,请压缩并上传。

附件中,1122.doc是不良行为的word文件,template.doc是我预期的word文件。Test_demo_personal.java是我的java应用程序。新建文件夹.zip (6.2 KB)

@liyong199466

感谢您分享细节。 在您的情况下,直接格式应用于具有标题1样式的段落。 直接格式化通过Run.Font属性应用。 下面的代码示例演示如何删除段落的直接格式。 希望这对你有所帮助。

Document doc = new Document(MyDir + "1122.doc");
StyleCollection styles = doc.getStyles();
Style idending1 = styles.getByStyleIdentifier(StyleIdentifier.HEADING_1);
idending1.getFont().setName("仿宋");
idending1.getFont().setSize(20);

NodeCollection paragraphs = doc.getChildNodes(NodeType.PARAGRAPH, true);
for (Paragraph  paragraph : (Iterable<Paragraph>) paragraphs)
{
    if(paragraph.getParagraphFormat().getStyleIdentifier() == StyleIdentifier.HEADING_1)
    {
        for(Run run : paragraph.getRuns())
        {
            run.getFont().clearFormatting();
        }
    }
}

doc.save(MyDir + "18.10.doc");