文档中存在两个类似线条的对象,怎么解析提取出来

@ouchli 为此,您可以使用 LayoutCollector:

Document doc = new Document("Big document.docx");
FindReplaceOptions opt = new FindReplaceOptions();
opt.setReplacingCallback(new ProcessFirstMatchOnlyCallback());
opt.setDirection(FindReplaceDirection.BACKWARD);
doc.getRange().replace("&m", "", opt);
doc.save("out.docx");
private class ProcessFirstMatchOnlyCallback implements IReplacingCallback {
    @Override
    public int replacing(ReplacingArgs args) throws Exception {
        LayoutCollector layout = new LayoutCollector((Document) args.getMatchNode().getDocument());
        int pageNumber = layout.getStartPageIndex(args.getMatchNode());
        if (pageNumber == 1) {
            return ReplaceAction.REPLACE;
        } else {
            return ReplaceAction.SKIP;
        }
    }
}

您好,我用如下代码设置文档表格的字体颜色,但是只有部分设置成功,请问是什么原因呢?
代码如下:

Document document = new Document("D:\\Users\\Desktop\\版本号333.docx");
        NodeCollection<Table> childNodes = document.getChildNodes(NodeType.TABLE, true);
        for (Table childNode : childNodes) {
            NodeCollection<Run> childNodes1 = childNode.getChildNodes(NodeType.RUN, true);
            for (Run run : childNodes1) {
                run.getFont().setColor(Color.BLUE);
            }
        }
        document.save("D:\\Users\\Desktop\\tttttttttt456123哈哈哈.docx");

原始文档为:
版本号333.docx (24.5 KB)

修订后的文档为:
tttttttttt456123哈哈哈.docx (31.1 KB)

@ouchli 有些运行有主题的填充格式,因此也需要更改填充颜色:

run.getFont().setColor(Color.BLUE);
run.getFont().getFill().setColor(Color.BLUE);

这种设置好像会报错,什么情况下会报这种错误呢

另外,请看一下,这个还是没有设置成功

文档如下:
testtest.docx (56.0 KB)

我如果想要将文档的第一页转为markdown,而不是转换整个文档,有办法做到吗
转换时要求忽略文本框和图片,又该如何实现呢

@ouchli 您使用的是哪个版本的 Aspose.Words?

@ouchli 我无法打开文档,好像坏了。

@ouchli 遗憾的是,在这方面没有指定的选项。唯一的办法是使用 extractPages 获取第一页,然后删除文本框和图像。

版本为24.4

@ouchli 我用 24.4 版本检查了代码,没有异常。

你好,请问我现在要设置一个段落的制表符,使用以下代码设置出来的位置却超出了页面的大小,请问这是什么原因,如何解决呢

PageSetup pageSetup = document.getSections().get(DocConstants.NUM_0).getPageSetup();
double position = pageSetup.getPageWidth() - pageSetup.getLeftMargin() - pageSetup.getRightMargin(); 
tabStops.add(position, TabAlignment.RIGHT, TabLeader.NONE);

@ouchli Unfortunately, I cannot reproduce the problem on my side. Here is a simple code I have used for testing:

Document doc = new Document();
doc.getFirstSection().getBody().getFirstParagraph().appendChild(new Run(doc, "testtest\ttesttest"));
    
TabStopCollection tabStops = doc.getFirstSection().getBody().getFirstParagraph().getParagraphFormat().getTabStops();
PageSetup pageSetup = doc.getFirstSection().getPageSetup();
double position = pageSetup.getPageWidth() - pageSetup.getLeftMargin() - pageSetup.getRightMargin();
tabStops.add(position, TabAlignment.RIGHT, TabLeader.NONE);
        
doc.save("C:\\Temp\\out.docx");

out.docx (7.2 KB)

谢谢,按照你的代码做了改动,执行没问题了
另外,在问一个问题,如果我要将一个段落的内容设置为空字符串,该用哪个方法

@ouchli 您可以简单地删除所有段落的子节点:

para.removeAllChildren();

你好,如图所示,请问如何设置段落的该属性呢

我在代码中设置paragraphformat. setWordWrap(true),没有起作用

@ouchli 您应将此属性设置为 false,否则拉丁文本将被整词包裹。