页眉和页脚通常用于文档中显示页码、主题、章节等重要信息。您可以在 Word 文档中添加、插入、删除或删除页眉和页脚 DOCX DOC 使用您的 Java 应用程序。在本文中,我们将学习添加或删除页眉和页脚。以下是我们将详细探讨的主题:

插入或删除页眉页脚 API – 安装

为了在 Word 文档中使用页眉和页脚,我们将使用 Aspose.Words for Java API,其中简单的 API 调用将帮助我们实现要求。您可以从 releases section 下载 JAR 文件,或将以下 Maven 配置复制到您的项目中。 API 将通过 Maven 存储库进行配置,您可以继续执行本文中解释的进一步步骤。

存储库:

<repositories>
    <repository>
        <id>AsposeJavaAPI</id>
        <name>Aspose Java API</name>
        <url>https://repository.aspose.com/repo/</url>
    </repository>
</repositories>

依赖:

<dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-words</artifactId>
        <version>20.8</version>
        <classifier>jdk17</classifier>
    </dependency>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-words</artifactId>
        <version>20.8</version>
        <classifier>javadoc</classifier>
    </dependency>
</dependencies>

使用 Java 在 Word 文档 (DOCX/DOC) 中添加页眉和页脚

在 Word 文档 (DOCX/DOC) 中添加页眉和页脚是处理文字处理文档的一个基本但重要的用例。然而,不同的场景是可能的。例如,您可能需要在页眉和页脚部分添加图像、表格或仅一些文本。此外,与其他页面相比,有时标题页上的页眉和页脚不同。有时,偶数页码的页眉和页脚不同,奇数页码的页眉和页脚不同。因此,我们创建了一个在 Word 文档中添加页眉和页脚的简洁基本示例。

在这里,我们将在标题页(非常第一页)上插入不同的页眉页脚,并在后续页面上插入不同的页眉页脚。而第二页将有一个自定义页眉页脚,包括图像、文本和表格元素。您需要按照以下步骤使用 Java 在 Word 文档 (DOCX/DOC) 中添加或插入页眉和页脚。

  1. 初始化 DocumentDocumentBuilder 类对象
  2. 指定标题页需要不同的页眉页脚
  3. 设置标题文本的字体属性
  4. 创建页眉和后续页面
  5. 插入表格并设置页码格式
  6. 保存输出 DOCX 文件

以下代码基于这些步骤,展示了如何使用 Java 以编程方式在 Word 文档 (DOCX/DOC) 中添加页眉和页脚:

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Section currentSection = builder.getCurrentSection();
PageSetup pageSetup = currentSection.getPageSetup();

// 指定我们是否希望第一页的页眉/页脚与其他页面不同。
// 您还可以使用 PageSetup.OddAndEvenPagesHeaderFooter 属性来指定
// 奇数页和偶数页的不同页眉/页脚。
pageSetup.setDifferentFirstPageHeaderFooter(true);

// --- 为第一页创建页眉。 ---
pageSetup.setHeaderDistance(20);
builder.moveToHeaderFooter(HeaderFooterType.HEADER_FIRST);
builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);

// 设置标题文本的字体属性。
builder.getFont().setName("Arial");
builder.getFont().setBold(true);
builder.getFont().setSize(14);
// 指定第一页的页眉标题。
builder.write("Aspose.Words Header/Footer Creation - Title Page.");

// --- 为第一页以外的页面创建页眉。 ---
pageSetup.setHeaderDistance(20);
builder.moveToHeaderFooter(HeaderFooterType.HEADER_PRIMARY);

// 将绝对定位的图像插入标题的上/左角。
// 与页面顶部/左侧边缘的距离设置为 10 点。
String imageFileName = dataDir + "Aspose.Words.gif";
builder.insertImage(imageFileName, RelativeHorizontalPosition.PAGE, 10, RelativeVerticalPosition.PAGE, 10, 50, 50, WrapType.THROUGH);

builder.getParagraphFormat().setAlignment(ParagraphAlignment.RIGHT);
// 为其他页面指定另一个标题。
builder.write("Aspose.Words Header/Footer Creation");

// --- 为第一页以外的页面创建页脚。 ---
builder.moveToHeaderFooter(HeaderFooterType.FOOTER_PRIMARY);

// 我们使用带有两个单元格的表格来制作一行文字的一部分(带页码)
// 左对齐,文本的其他部分(有版权)右对齐。
builder.startTable();

// 清除表格边框
builder.getCellFormat().clearFormatting();

builder.insertCell();
// 将第一个单元格设置为页面宽度的 1/3。
builder.getCellFormat().setPreferredWidth(PreferredWidth.fromPercent(100 / 3));

// 在此处插入页码文本。
// 它使用 PAGE 和 NUMPAGES 字段来自动计算当前页码和总页数。
builder.write("Page ");
builder.insertField("PAGE", "");
builder.write(" of ");
builder.insertField("NUMPAGES", "");

// 将此文本左对齐。
builder.getCurrentParagraph().getParagraphFormat().setAlignment(ParagraphAlignment.LEFT);

builder.insertCell();
// 将第二个单元格设置为页面宽度的 2/3。
builder.getCellFormat().setPreferredWidth(PreferredWidth.fromPercent(100 * 2 / 3));

builder.write("(C) 2020 Aspose Pty Ltd. All rights reserved.");

// 将此文本右对齐。
builder.getCurrentParagraph().getParagraphFormat().setAlignment(ParagraphAlignment.RIGHT);

builder.endRow();
builder.endTable();

builder.moveToDocumentEnd();
// 进行分页以创建第二个页面,在该页面上可以看到主要的页眉/页脚。
builder.insertBreak(BreakType.PAGE_BREAK);

// 保存生成的文档。
doc.save(dataDir + "HeaderFooter_Out.docx");

到目前为止,我们已经学习了如何在 word 文件中添加或插入页眉和页脚。下面是通过“打印预览”选项查看输出时的外观截图。

当您的应用程序处理不同的 DOC/DOCX 文档时,您希望在其中添加一些内容作为输出文档的页眉页脚,此功能可以提供很大帮助。

添加或删除页眉页脚

让我们继续检查从 MS Word 文件 (DOCX/DOC) 中删除页眉和页脚。

使用 Java 删除 Word 文档 (DOCX/DOC) 的页眉和页脚

您可以使用 Aspose.Words for Java API 删除 word 文档的页眉和页脚。如上所述,文档中可以添加三种不同类型的页眉和页脚。例如,在标题页、偶数页和奇数页码上。您只需按照以下步骤即可删除 word 文件中的所有页眉和页脚:

  1. 加载源 DOCX/DOC 文件
  2. 在扉页、偶数页码和奇数页码上查找页眉和页脚
  3. 找到时删除所需部分
  4. 保存输出 DOCX 文件

下面的代码遵循这些步骤,并展示了如何使用 Java 删除 word 文档中的页眉和页脚:

Document doc = new Document(dataDir + "HeaderFooter.doc");
for (Section section : doc.getSections()) {
	// 在一个部分中最多可以有三个不同的页眉页脚(用于第一页、偶数页和奇数页)。
	// 我们检查并删除所有这些。
	HeaderFooter footer;
        HeaderFooter header;

	footer = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.FOOTER_FIRST);
       	header = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.HEADER_FIRST);
        
        
	if (footer != null)
		footer.remove();
        
        	if (header != null)
		header.remove();

	// 主页眉页脚用于奇数页。
	footer = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.FOOTER_PRIMARY);
	if (footer != null)
		footer.remove();
        
        header = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.HEADER_PRIMARY);
	if (header != null)
		header.remove();

	footer = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.FOOTER_EVEN);
	if (footer != null)
		footer.remove();
        
       	header = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.HEADER_EVEN);
	if (header != null)
		header.remove();
}

doc.save(dataDir + "RemoveHeaderFooter_Out.docx");

使用 Java 从 Word 文档 (DOCX/DOC) 中删除页脚

我们已经讨论过如何从 word 文件中删除或删除页眉和页脚。但是,您可能只想删除 Word 文档的页脚,同时保持页眉不变。通过以下步骤可以轻松满足这些要求:

  1. 加载源word文件(DOCX/DOC)
  2. 遍历word文档的每个部分
  3. 初始化 HeaderFooter 对象
  4. 从输入文件中删除页脚
  5. 保存更新的 DOCX/DOC 文件

以下代码片段解释了如何使用 Java 从 word 文档中删除页脚:

Document doc = new Document(dataDir + "HeaderFooter.doc");
for (Section section : doc.getSections()) {
	// 一个部分最多可以有三个不同的页脚(第一页、偶数页和奇数页)。
	// 我们检查并删除所有这些。
	HeaderFooter footer;

	footer = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.FOOTER_FIRST);
	if (footer != null)
		footer.remove();

	// 主页脚是用于奇数页的页脚。
	footer = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.FOOTER_PRIMARY);
	if (footer != null)
		footer.remove();

	footer = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.FOOTER_EVEN);
	if (footer != null)
		footer.remove();
}
doc.save(dataDir + "RemoveFooters.docx");

使用 Java 从 Word 文档 (DOCX/DOC) 中删除标题

因为我们已经学会了从 MS Word 文件中删除或仅删除页脚。让我们进一步探索这一步,您可能只需要从 Word 文档中删除标题。页脚将保持不变且不受影响,因为我们这里的重点是仅删除页眉。以下步骤概述了为此目的而采用的程序:

  1. 加载输入 Word 文件 (DOCX/DOC)
  2. 初始化 HeaderFooter 类的一个实例
  3. 从输入文档的所有部分中删除标题
  4. 保存更新 DOCX 文件

下面的代码显示了如何使用 Java 从 word 文档中删除或删除标题:

Document doc = new Document(dataDir + "HeaderFooter.doc");
for (Section section : doc.getSections()) {
	// 一个部分最多可以有三个不同的页脚(第一页、偶数页和奇数页)。
	// 我们检查并删除所有这些。
	HeaderFooter header;

	header = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.HEADER_FIRST);
	if (header != null)
		header.remove();

	// 主页脚是用于奇数页的页脚。
	header = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.HEADER_PRIMARY);
	if (header != null)
		header.remove();

	header = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.HEADER_EVEN);
	if (header != null)
		header.remove();
}
doc.save(dataDir + "RemoveHeader.docx");

结论

在 Word 文档中添加、插入、删除或删除页眉和页脚是文字处理的一个非常重要且经常使用的用例。几乎所有文档都包含页眉和页脚,可以根据您的要求使用 Aspose.Words for Java API 进行操作。本文概述了相关功能,您可以通过 免费支持论坛 与我们讨论任何自定义用例和要求。如有任何疑问和疑虑,请随时与我们联系。

也可以看看