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

Insert or Remove Header Footer API – встановлення

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

Поки що ми навчилися додавати або вставляти верхній і нижній колонтитули у файли Word. Нижче наведено знімок екрана, на якому показано, як виглядає результат, коли ви бачите його за допомогою параметра попереднього перегляду.

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

Додати або видалити нижній колонтитул

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

Видалення верхнього та нижнього колонтитулів документа Word (DOCX/DOC) за допомогою Java

Ви можете видалити верхній і нижній колонтитули документів Word за допомогою API Aspose.Words for Java. Як обговорювалося вище, до документа можуть бути додані три різні типи колонтитулів. Наприклад, на титульному аркуші, на парних і непарних сторінках. Ви можете видалити всі верхні та нижні колонтитули у файлі 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. Завантажити вихідний файл Word (DOCX/DOC)
  2. Ітерація кожного розділу документа Word
  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

Код нижче показує, як видалити або видалити заголовок із документів Word за допомогою 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 відповідно до ваших вимог. Ця стаття є оглядом пов’язаних функцій, де ви можете обговорити з нами будь-який індивідуальний варіант використання та вимоги через безкоштовні форуми підтримки. Не соромтеся звертатися до нас із будь-якими запитаннями та проблемами.

Дивись також