Верхний и нижний колонтитулы обычно используются в документах для отображения важной информации, такой как номер страницы, тема, глава и т. д. Вы можете добавлять, вставлять, удалять или удалять верхний и нижний колонтитулы в документах Word DOCXDOC с помощью ваши Java-приложения. В этой статье мы узнаем о добавлении или удалении верхних и нижних колонтитулов. Ниже приведены темы, которые мы будем подробно изучать:

API вставки или удаления нижнего колонтитула верхнего колонтитула — установка

Для работы с верхним и нижним колонтитулами в документах Word мы будем использовать API Aspose.Words for Java, где простые вызовы API помогут нам выполнить требования. Вы можете скачать 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>

Добавить верхний и нижний колонтитулы в документ Word (DOCX/DOC) с помощью Java

Добавление верхнего и нижнего колонтитула в документы Word (DOCX/DOC) является основным, но важным вариантом использования при работе с текстовыми документами. Однако возможны разные сценарии. Например, вам может понадобиться добавить изображение, таблицу или только текст в верхний и нижний колонтитулы. Более того, иногда верхний и нижний колонтитулы на титульном листе отличаются от других страниц. Иногда верхний и нижний колонтитулы отличаются на четных номерах страниц и отличаются на нечетных номерах страниц. Поэтому мы создали краткий и базовый пример добавления верхнего и нижнего колонтитула в документы Word.

Здесь мы будем вставлять другой нижний колонтитул на титульной странице (самая первая страница) и другой нижний колонтитул на следующей странице. Принимая во внимание, что вторая страница будет иметь настраиваемый нижний колонтитул верхнего колонтитула, включающий изображение, текст и элемент таблицы. Вам необходимо выполнить следующие шаги для добавления или вставки верхнего и нижнего колонтитула в документы Word (DOCX/DOC) с помощью Java.

  1. Инициализировать объекты классов Document и DocumentBuilder.
  2. Укажите, что вы хотите другой нижний колонтитул для титульного листа
  3. Установить свойства шрифта для текста заголовка
  4. Создать заголовок и для последующих страниц
  5. Вставить таблицу и установить формат номера страницы
  6. Сохранить выходной файл DOCX

Следующий код основан на этих шагах, которые показывают, как программно добавить верхний и нижний колонтитулы в документы Word (DOCX/DOC) с помощью Java:

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");

До сих пор мы научились добавлять или вставлять верхний и нижний колонтитулы в текстовые файлы. Ниже приведен скриншот того, как выглядит вывод, когда вы видите его с помощью параметра «Предварительный просмотр».

Эта функция может очень помочь, когда различные документы DOC/DOCX обрабатываются вашими приложениями, когда вы хотите добавить некоторый контент в качестве верхнего колонтитула выходных документов.

Добавить или удалить верхний колонтитул

Перейдем к проверке удаления верхнего и нижнего колонтитула из файлов MS Word (DOCX/DOC).

Удалить верхний и нижний колонтитулы документа Word (DOCX/DOC) с помощью Java

Вы можете удалить верхний и нижний колонтитулы текстовых документов с помощью Aspose.Words for Java API. Как обсуждалось выше, в документ могут быть добавлены три различных типа верхнего и нижнего колонтитула. Например, на титульном листе, на четных страницах и с нечетными номерами страниц. Вы можете удалить все верхние и нижние колонтитулы в файле Word, просто выполнив следующие действия:

  1. Загрузить исходный файл DOCX/DOC
  2. Найти верхний и нижний колонтитулы на титульном листе, четные номера страниц и нечетные номера страниц
  3. Удалить нужный раздел, когда он найден
  4. Сохранить выходной файл DOCX

Приведенный ниже код следует этим шагам и показывает, как удалить верхний и нижний колонтитулы в документах Word с помощью Java:

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");

Удалить нижний колонтитул из документа Word (DOCX/DOC) с помощью Java

Мы уже обсуждали, как удалить или удалить верхний и нижний колонтитулы из файлов Word. Однако вы можете удалить только нижние колонтитулы документа Word, оставив верхний колонтитул нетронутым. Эти требования легко выполняются с помощью следующих шагов:

  1. Загрузить исходный текстовый файл (DOCX/DOC)
  2. Итерация по каждому разделу текстового документа
  3. Инициализировать объект HeaderFooter
  4. Удалить нижний колонтитул из входного файла
  5. Сохранить обновленный файл DOCX/DOC

Следующий фрагмент кода объясняет, как удалить нижний колонтитул из документа Word с помощью Java:

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");

Удалить заголовок из документа Word (DOCX/DOC) с помощью Java

Так как мы научились удалять или удалять только нижний колонтитул из файлов MS Word. Давайте рассмотрим еще один шаг вперед, когда вам может потребоваться удалить только заголовки из документов Word. Нижние колонтитулы останутся прежними и не будут затронуты, потому что наше внимание здесь сосредоточено на удалении только заголовков. Следующие шаги представляют собой схему процедуры, которая должна быть принята для этой цели:

  1. Загрузить входной файл Word (DOCX/DOC)
  2. Инициализировать экземпляр класса HeaderFooter
  3. Удалить заголовки из всех разделов входного документа
  4. Сохранить файл обновления DOCX

В приведенном ниже коде показано, как удалить или удалить заголовок из текстовых документов с помощью Java:

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 в соответствии с вашими требованиями. В этой статье представлен обзор связанных функций, с помощью которых вы можете обсудить с нами любой вариант использования и требования на бесплатных форумах поддержки. Не стесняйтесь обращаться к нам с любыми вопросами и проблемами.

Смотрите также