Sidhuvud och sidfot används ofta i dokument för att visa viktig information som sidnummer, ämne, kapitel, etc. Du kan lägga till, infoga, ta bort eller ta bort sidhuvud och sidfot i Word-dokument DOCX DOC med dina Java-applikationer. I den här artikeln kommer vi att lära oss hur du lägger till eller tar bort sidhuvuden och sidfötter. Följande är de ämnen som vi kommer att undersöka i detalj:

Infoga eller ta bort Header Footer API – Installation

För att arbeta med sidhuvud och sidfot i Word-dokument kommer vi att använda Aspose.Words for Java API där enkla API-anrop hjälper oss att uppnå kraven. Du kan ladda ner JAR-filen från releases section eller kopiera följande Maven-konfigurationer i ditt projekt. API:t kommer att konfigureras via Maven-förvaret och du kommer att vara bra att fortsätta med ytterligare steg som förklaras i den här artikeln.

Förvar:

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

Beroende:

<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>

Lägg till sidhuvud och sidfot i Word-dokument (DOCX/DOC) med Java

Att lägga till sidhuvud och sidfot i Word-dokument (DOCX/DOC) är ett grundläggande men viktigt användningsfall för att arbeta med ordbehandlingsdokument. Men olika scenarier är möjliga. Till exempel kan du behöva lägga till en bild, en tabell eller bara viss text i sidhuvudet och sidfoten. Dessutom är ibland sidhuvudet och sidfoten annorlunda på titelsidan jämfört med andra sidor. Ibland är sidhuvudet och sidfoten olika på jämna sidnummer och olika på udda sidnummer. Därför har vi skapat ett kortfattat och grundläggande exempel på att lägga till sidhuvud och sidfot i Word-dokument.

Här kommer vi att infoga olika sidhuvud på titelsidan (första sidan) och olika sidhuvud på den efterföljande sidan. Medan den andra sidan kommer att ha en anpassad sidhuvud med bild, text och tabellelement. Du måste följa stegen nedan för att lägga till eller infoga sidhuvud och sidfot i word-dokument (DOCX/DOC) med Java.

  1. Initiera klassobjekten Document och DocumentBuilder
  2. Ange att du vill ha en annan sidhuvud för titelsidan
  3. Ställ in teckensnittsegenskaper för rubriktext
  4. Skapa rubrik och för efterföljande sidor
  5. Infoga tabell och ställ in sidnummerformatet
  6. Spara utdata DOCX-fil

Följande kod är baserad på dessa steg som visar hur man lägger till sidhuvud och sidfot i Word-dokument (DOCX/DOC) programmatiskt med Java:

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

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

// Ange om vi vill att sidhuvuden/sidfötter på första sidan ska skilja sig från andra sidor.
// Du kan också använda egenskapen PageSetup.OddAndEvenPagesHeaderFooter för att ange
// olika sidhuvuden/sidfötter för udda och jämna sidor.
pageSetup.setDifferentFirstPageHeaderFooter(true);

// --- Skapa rubrik för första sidan. ---
pageSetup.setHeaderDistance(20);
builder.moveToHeaderFooter(HeaderFooterType.HEADER_FIRST);
builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);

// Ställ in teckensnittsegenskaper för rubriktext.
builder.getFont().setName("Arial");
builder.getFont().setBold(true);
builder.getFont().setSize(14);
// Ange rubriktitel för första sidan.
builder.write("Aspose.Words Header/Footer Creation - Title Page.");

// --- Skapa rubrik för andra sidor än första. ---
pageSetup.setHeaderDistance(20);
builder.moveToHeaderFooter(HeaderFooterType.HEADER_PRIMARY);

// Infoga en absolut positionerad bild i det övre/vänstra hörnet av rubriken.
// Avståndet från sidans övre/vänsterkant är satt till 10 punkter.
String imageFileName = dataDir + "Aspose.Words.gif";
builder.insertImage(imageFileName, RelativeHorizontalPosition.PAGE, 10, RelativeVerticalPosition.PAGE, 10, 50, 50, WrapType.THROUGH);

builder.getParagraphFormat().setAlignment(ParagraphAlignment.RIGHT);
// Ange en annan rubriktitel för andra sidor.
builder.write("Aspose.Words Header/Footer Creation");

// --- Skapa sidfot för andra sidor än första. ---
builder.moveToHeaderFooter(HeaderFooterType.FOOTER_PRIMARY);

// Vi använder tabell med två celler för att göra en del av texten på raden (med sidnumrering)
// vänsterjusteras och den andra delen av texten (med upphovsrätt) ska justeras höger.
builder.startTable();

// Rensa bordskanter
builder.getCellFormat().clearFormatting();

builder.insertCell();
// Ställ in första cellen till 1/3 av sidbredden.
builder.getCellFormat().setPreferredWidth(PreferredWidth.fromPercent(100 / 3));

// Infoga sidnumreringstext här.
// Den använder PAGE- och NUMPAGES-fälten för att automatiskt beräkna aktuellt sidnummer och totalt antal sidor.
builder.write("Page ");
builder.insertField("PAGE", "");
builder.write(" of ");
builder.insertField("NUMPAGES", "");

// Justera denna text till vänster.
builder.getCurrentParagraph().getParagraphFormat().setAlignment(ParagraphAlignment.LEFT);

builder.insertCell();
// Ställ in den andra cellen på 2/3 av sidbredden.
builder.getCellFormat().setPreferredWidth(PreferredWidth.fromPercent(100 * 2 / 3));

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

// Justera denna text till höger.
builder.getCurrentParagraph().getParagraphFormat().setAlignment(ParagraphAlignment.RIGHT);

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

builder.moveToDocumentEnd();
// Gör sidbrytning för att skapa en andra sida där de primära sidhuvuden/sidfötter kommer att synas.
builder.insertBreak(BreakType.PAGE_BREAK);

// Spara det resulterande dokumentet.
doc.save(dataDir + "HeaderFooter_Out.docx");

Hittills har vi lärt oss hur man lägger till eller infogar sidhuvud och sidfot i word-filer. Nedan finns en skärmdump av hur utskriften ser ut när du ser den via alternativet för förhandsgranskning.

Den här funktionen kan hjälpa mycket när olika DOC/DOCX-dokument bearbetas av dina applikationer där du vill lägga till något innehåll som sidhuvud i utdatadokument.

Lägg till eller ta bort sidhuvud

Låt oss gå vidare för att ta bort sidhuvudet och sidfoten från MS Word-filer (DOCX/DOC).

Ta bort sidhuvud och sidfot i Word-dokument (DOCX/DOC) med Java

Du kan ta bort sidhuvudet och sidfoten i Word-dokument med Aspose.Words för Java API. Som diskuterats ovan kan det läggas till tre olika typer av sidhuvud och sidfot i ett dokument. Till exempel på titelsidan, på jämna sidor och udda sidnummer. Du kan ta bort alla sidhuvuden och sidfötter i en word-fil genom att helt enkelt följa stegen nedan:

  1. Ladda källfilen DOCX/DOC
  2. Hitta sidhuvud och sidfot på titelsidan, jämna sidnummer och udda sidnummer
  3. Ta bort det önskade avsnittet när det hittas
  4. Spara utdata DOCX-fil

Koden nedan följer dessa steg och visar hur man tar bort sidhuvud och sidfot i Word-dokument med Java:

Document doc = new Document(dataDir + "HeaderFooter.doc");
for (Section section : doc.getSections()) {
	// Upp till tre olika sidhuvuden är möjliga i ett avsnitt (för första, jämna och udda sidor).
	// Vi kontrollerar och raderar dem alla.
	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();

	// Primär sidhuvud används för udda sidor.
	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");

Ta bort sidfot från Word-dokument (DOCX/DOC) med Java

Vi har redan diskuterat hur man tar bort eller tar bort sidhuvud och sidfot från word-filer. Men du kanske bara vill ta bort sidfötterna i ett Word-dokument samtidigt som du lämnar sidhuvudet intakt. Dessa krav är lätta möjliga med följande steg:

  1. Ladda källordsfil (DOCX/DOC)
  2. Iterera genom varje avsnitt i word-dokumentet
  3. Initiera HeaderFooter objekt
  4. Ta bort sidfot från inmatningsfilen
  5. Spara uppdaterad DOCX/DOC-fil

Följande kodavsnitt förklarar hur du tar bort sidfot från Word-dokument med Java:

Document doc = new Document(dataDir + "HeaderFooter.doc");
for (Section section : doc.getSections()) {
	// Upp till tre olika sidfötter är möjliga i ett avsnitt (för första, jämna och udda sidor).
	// Vi kontrollerar och raderar dem alla.
	HeaderFooter footer;

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

	// Primär sidfot är sidfoten som används för udda sidor.
	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");

Ta bort Header från Word-dokument (DOCX/DOC) med Java

Eftersom vi har lärt oss att ta bort eller ta bort bara sidfoten från MS Word-filer. Låt oss utforska detta ytterligare ett steg längre där du kan behöva ta bort bara rubrikerna från Word-dokument. Sidfötter kommer att förbli desamma och opåverkade eftersom vårt fokus här är att bara ta bort sidhuvuden. Följande steg ger en översikt över det förfarande som ska användas för detta ändamål:

  1. Ladda in Word-fil (DOCX/DOC)
  2. Initiera en instans av klassen HeaderFooter
  3. Ta bort rubriker från alla avsnitt av inmatningsdokumentet
  4. Spara uppdateringen DOCX-fil

Nedanstående kod visar hur du tar bort eller tar bort rubriken från Word-dokument med Java:

Document doc = new Document(dataDir + "HeaderFooter.doc");
for (Section section : doc.getSections()) {
	// Upp till tre olika sidfötter är möjliga i ett avsnitt (för första, jämna och udda sidor).
	// Vi kontrollerar och raderar dem alla.
	HeaderFooter header;

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

	// Primär sidfot är sidfoten som används för udda sidor.
	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");

Slutsats

Lägg till, infoga, ta bort eller ta bort sidhuvud och sidfot i Word-dokument är ett mycket viktigt och frekvent användningsfall av ordbehandling. Nästan alla dokument innehåller sidhuvuden och sidfötter, som kan manipuleras med Aspose.Words för Java API enligt dina krav. Den här artikeln är en översikt över relaterade funktioner där du kan diskutera alla anpassade användningsfall och krav med oss via Free Support Forums. Välkommen att kontakta oss för eventuella frågor och funderingar.

Se även