文档附件.docx (46.4 KB)
文档中有空白页,请问怎么删除文档中的所有空白页
@ouchli 有一个内置方法 Document.removeBlankPages() 用于删除文档中的空白页:
Document doc = new Document("C:\\Temp\\in.docx");
doc.removeBlankPages();
doc.save("C:\\Temp\\out.docx");
在文档中,空白页面是由明确的分页符产生的。 所以你可以简单地删除它们:
Document doc = new Document("C:\\Temp\\in.docx");
doc.getRange().replace("&m", "");
doc.save("C:\\Temp\\out.docx");
你好,在修订过程中,将某段文字替换之后,组件解析时会将原内容和替换后的内容都解析出来,例如:
我们将"xxxx"替换为"yyyy":,但是在组件解析时候解析到这段文字为"xxxx yyyy"
请问:如何忽略被替换的内容,使组件只解析到替换后的内容"yyyy"呢
@ouchli 替换内容时,应将其标记为已删除。因此,请尽量使用 FindReplaceOptions | Aspose.Words for Java
FindReplaceOptions options = new FindReplaceOptions();
options.setIgnoreDeleted(true);
好像没用,替换之后还是会保留原来的内容
@ouchli 我认为只有一种方法可以获得最新结果。那就是接受所有修订并重新获取内容。如果不想更改原始文档,可以克隆文档,接受修订并重新获取内容。
例如,您也可以尝试通过修订来查找文本:
for (Run r : (Iterable<Run>) doc.getChildNodes(NodeType.RUN, true))
{
if (!r.isDeleteRevision())
System.out.println(r.getText());
}
您好,请问表格中有个属性是文字环绕,这个设置对应的字段是哪个呢
还有一个问题,就是在查找替换时候,如果这个段落中有图片,那么就无法查找到原文本并替换成功。
举个例子:比如一个段落是" 一张图片 xxxx “,这个段落中有一张图片,而此时使用paragraph.getText()方法获取到的结果是findStr=” xxxx ",这时候使用replace方法将findStr替换为replaceStr="yyyy"是替换不成功的
请问这种情况如何解决呢,我的诉求是如何做使得最终能替换成功,谢谢~
你好,
当文档某段文本包含了引用或者超链接,比如当文本是图3-1,但是他实际上还会链接到别处,这时候使用run.getText方法获取到的内容还包括其中的超链接,请问我如何只拿其中的文本"图3-1",而忽略其中的超链接呢,此外,如果只修订"图3-1"的字体字号,又该如何实现呢
@ouchli 从技术上讲,超链接和引用都是字段。因此,您需要获取字段内容才能实现结果。但字体可以在更新字段后重置。请查看:
Document doc = new Document("input.docx");
for (Field field : doc.getRange().getFields())
{
if (field.getType() == FieldType.FIELD_HYPERLINK)
{
FieldHyperlink hyperlink = (FieldHyperlink) field;
// Some hyperlinks can be local (links to bookmarks inside the document), ignore these.
if (hyperlink.getSubAddress() != null)
continue;
Inline fieldStart = hyperlink.getStart();
while (fieldStart!=null && fieldStart != hyperlink.getEnd())
{
fieldStart.getFont().setColor(Color.RED);
fieldStart.getFont().setUnderline(Underline.SINGLE);
fieldStart = (Inline) fieldStart.getNextSibling();
}
System.out.println(hyperlink.getResult());
}
}
doc.save("output.docx");