题注在文档中起到了多种重要的作用,包括提供背景信息、提高可读性、方便引用和索引,以及增加可信度和版权保护。本文将介绍如何使 Spire.Doc for Java 在 Java 项目中添加和删除 Word 文档中的题注。
安装 Spire.Doc for Java
首先,您需要在 Java 程序中添加 Spire.Doc.jar 文件作为依赖项。您可以从此链接下载 JAR 文件;如果您使用 Maven,则可以通过在 pom.xml 文件中添加以下代码导入 JAR 文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc</artifactId>
<version>12.11.0</version>
</dependency>
</dependencies>
添加图片题注到 Word 文档
通过调用 DocPicture.addCaption(String name, CaptionNumberingFormat format, CaptionPosition captionPosition) 方法来给图片添加题注。详细步骤如下:
- 创建一个 Document 类的对象。
- 使用 Document.addSection() 方法添加一个章节。
- 创建一个 Paragraph 对象 pictureParagraphCaption 并将其添加到文档中的指定章节(section)。
- 使用 Paragraph.appendPicture(String filePath) 方法向段落中添加 DocPicture 图片对象 pic1。
- 通过 DocPicture.addCaption(String name, CaptionNumberingFormat format, CaptionPosition captionPosition) 方法来添加题注以 CaptionNumberingFormat.Number 数字方式进行编号。
- 使用 Document.saveToFile() 方法保存结果文档。
- Java
import com.spire.doc.*;
import com.spire.doc.documents.*;
import com.spire.doc.fields.DocPicture;
public class AddPictureCaption {
public static void main(String[] args) {
// 创建Word文档对象
Document document = new Document();
// 添加一个章节
Section section = document.addSection();
// 添加一个新段落并给它添加一个图片
Paragraph pictureParagraphCaption = section.addParagraph();
pictureParagraphCaption.getFormat().setAfterSpacing(10);
DocPicture pic1 = pictureParagraphCaption.appendPicture("Data\\1.png");
pic1.setHeight(100);
pic1.setWidth(100);
// 给图片添加题注
CaptionNumberingFormat format = CaptionNumberingFormat.Number;
pic1.addCaption("图片", format, CaptionPosition.Below_Item);
// 再新添加一个新段落并给它添加一个图片
pictureParagraphCaption = section.addParagraph();
DocPicture pic2 = pictureParagraphCaption.appendPicture("Data\\2.png");
pic2.setHeight(100);
pic2.setWidth(100);
// 给图片添加题注
pic2.addCaption("图片", format, CaptionPosition.Below_Item);
// 更新文档中的所有的域
document.isUpdateFields(true);
// 保存到一个docx文档
String result = "添加图片题注.docx";
document.saveToFile(result, FileFormat.Docx_2016);
// 关闭document对象释放资源
document.close();
document.dispose();
}
}
添加表格题注到 Word 文档
和添加图片题注类似,需调用 Table.addCaption(String name, CaptionNumberingFormat format, CaptionPosition captionPosition) 方法来为表格添加题注。详细步骤如下:
- 创建一个 Document 类的对象。
- 使用 Document.addSection() 方法添加一个章节。
- 创建一个 Table 对象 tableCaption 并将其添加到文档中的指定章节(section)。
- 使用 Table.resetCells(int rowsNum, int columnsNum) 方法来设置表格的行数和列数。
- 通过 Table.addCaption(String name, CaptionNumberingFormat format, CaptionPosition captionPosition) 方法来添加题注以 CaptionNumberingFormat.Number 数字方式进行编号。
- 使用 Document.saveToFile() 方法保存结果文档。
- Java
import com.spire.doc.*;
public class AddTableCaption {
public static void main(String[] args) {
// 创建Word文档对象
Document document = new Document();
// 添加一个章节
Section section = document.addSection();
// 添加一个表格
Table tableCaption = section.addTable(true);
tableCaption.resetCells(3, 2);
// 给表格添加题注
tableCaption.addCaption("表格", CaptionNumberingFormat.Number, CaptionPosition.Below_Item);
// 再新添加一个表格并给表格添加题注
tableCaption = section.addTable(true);
tableCaption.resetCells(2, 3);
tableCaption.addCaption("表格", CaptionNumberingFormat.Number, CaptionPosition.Below_Item);
// 更新文档中的所有的域
document.isUpdateFields(true);
// 保存到一个docx文档
String result = "添加表格题注.docx";
document.saveToFile(result, FileFormat.Docx_2016);
// 关闭document对象释放资源
document.close();
document.dispose();
}
}
从 Word 文档中删除题注
上面介绍了使用 Spire.Doc for Java 添加题注,同样它也支持从 Word 文档中删除题注。详细步骤如下:
- 创建 Document 类的对象。
- 使用 Document.loadFromFile() 方法加载一个 Word 文档。
- 创建一个自定义方法 DetectCaptionParagraph(Paragraph paragraph) 来判断此段落是否包含题注。
- 循环遍历文档中所有的段落 Paragraph 对象,并使用自定义方法 DetectCaptionParagraph(Paragraph paragraph) 找出包含题注的段落,将它们全部删除掉。
- 使用 Document.saveToFile() 方法保存结果文档。
- Java
import com.spire.doc.*;
import com.spire.doc.documents.*;
import com.spire.doc.fields.*;
public class DeleteCaptions {
public static void main(String[] args) {
// 创建Word文档对象
Document document = new Document();
// 加载示例.docx文件
document.loadFromFile("Data/示例.docx");
Section section;
// 遍历所有节
for (int i = 0; i < document.getSections().getCount(); i++) {
section = document.getSections().get(i);
// 倒序遍历节中的段落
for (int j = section.getBody().getParagraphs().getCount() - 1; j >= 0; j--) {
// 检测段落是否为题注段落
if (DetectCaptionParagraph(section.getBody().getParagraphs().get(j))){
// 如果是题注段落,则移除该段落
section.getBody().getParagraphs().removeAt(j);
}
}
}
// 保存删除题注后的文档
String result = "删除题注.docx";
document.saveToFile(result, FileFormat.Docx_2016);
// 关闭document对象释放资源
document.close();
document.dispose();
}
// 判断段落是否为题注段落的方法
static Boolean DetectCaptionParagraph(Paragraph paragraph) {
Boolean tag = false;
Field field;
// 遍历段落中的子对象
for (int i = 0; i < paragraph.getChildObjects().getCount(); i++) {
if(paragraph.getChildObjects().get(i).getDocumentObjectType().equals(DocumentObjectType.Field)) {
// 判断子对象是否为Field类型
field = (Field) paragraph.getChildObjects().get(i);
if (field.getType().equals(FieldType.Field_Sequence)){
// 判断Field类型是否为FieldSequence,即题注域类型
return true;
}
}
}
return tag;
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。