Давайте создадим новый документ DOCX с тремя разными верхними колонтитулами: колонтитул на первой странице, колонтитул по умолчанию и колонтитул в другом разделе.
Полный код
using System;
using System.IO;
using SautinSoft.Document;
namespace Example
{
class Program
{
static void Main(string[] args)
{
// Get your free 100-day key here:
// https://sautinsoft.com/start-for-free/
DifferentHeaderAndFooters();
}
/// <summary>
/// Creates a document with different headers: on first page, default and in another section.
/// </summary>
/// <remarks>
/// Details: https://sautinsoft.com/products/document/help/net/developer-guide/create-docx-document-with-different-headers-net-csharp-vb.php
/// </remarks>
static void DifferentHeaderAndFooters()
{
string documentPath = "DifferentHeaders.docx";
DocumentCore dc = new DocumentCore();
Section section1 = new Section(dc);
dc.Sections.Add(section1);
// Create headers.
HeaderFooter defaultHeader = CreateDefaultHeader(dc);
HeaderFooter firstHeader = CreateFirstHeader(dc);
// Add the headers into the collection.
section1.HeadersFooters.Add(defaultHeader);
section1.HeadersFooters.Add(firstHeader);
// Set that main section has a different header on the first page.
section1.PageSetup.TitlePage = true;
// Add some content.
Paragraph p = new Paragraph(dc, "My father\'s family name being Pirrip, and my Christian name Philip, " +
"my infant tongue could make of both names nothing longer or more explicit than Pip. So, I called myself " +
"Pip, and came to be called Pip. I give Pirrip as my father\'s family name, on the authority of his " +
"tombstone and my sister, -Mrs. Joe Gargery, who married the blacksmith.");
int totalPars = 15;
for (int i = 0; i < totalPars; i++)
{
section1.Blocks.Add(p.Clone(true));
}
// Add another header and content in the document.
// Let's create a one more section.
Section section2 = new Section(dc);
dc.Sections.Add(section2);
// Create a new header.
HeaderFooter header = new HeaderFooter(dc, HeaderFooterType.HeaderDefault);
header.Content.Start.Insert("Chapter II - another header.", new CharacterFormat()
{
FontColor = Color.Blue,
Size = 18
});
// Add the header into the Section2.
section2.HeadersFooters.Add(header);
// Add some content.
section2.Content.Start.Insert("My sister, Mrs. Joe Gargery, was more than twenty years older than I, " +
"and had established a great reputation with herself and the neighbors because she had brought me " +
"up \"by hand.\" Having at that time to find out for myself what the expression meant, and knowing " +
"her to have a hard and heavy hand, and to be much in the habit of laying it upon her husband as well " +
"as upon me, I supposed that Joe Gargery and I were both brought up by hand.");
// Save the document into DOCX format.
dc.Save(documentPath);
// Open the result for demonstration purposes.
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(documentPath) { UseShellExecute = true });
}
static HeaderFooter CreateDefaultHeader(DocumentCore dc)
{
HeaderFooter header = new HeaderFooter(dc, HeaderFooterType.HeaderDefault);
header.Content.Start.Insert("Chapter I - This is the default header", new CharacterFormat()
{
FontName = "Verdana",
Size = 18.0,
FontColor = Color.Orange
});
return header;
}
static HeaderFooter CreateFirstHeader(DocumentCore dc)
{
HeaderFooter header = new HeaderFooter(dc, HeaderFooterType.HeaderFirst);
header.Content.Start.Insert("Charles Dickens. Great Expectations - 1st page header", new CharacterFormat()
{
FontName = "Verdana",
Size = 18.0,
FontColor = Color.DarkGreen
});
return header;
}
}
}
Imports System
Imports System.IO
Imports SautinSoft.Document
Namespace Example
Friend Class Program
Shared Sub Main(ByVal args() As String)
DifferentHeaderAndFooters()
End Sub
''' Get your free 100-day key here:
''' https://sautinsoft.com/start-for-free/
''' <summary>
''' Creates a document with different headers: on first page, default and in another section.
''' </summary>
''' <remarks>
''' Details: https://sautinsoft.com/products/document/help/net/developer-guide/create-docx-document-with-different-headers-net-csharp-vb.php
''' </remarks>
Private Shared Sub DifferentHeaderAndFooters()
Dim documentPath As String = "DifferentHeaders.docx"
Dim dc As New DocumentCore()
Dim section1 As New Section(dc)
dc.Sections.Add(section1)
' Create headers.
Dim defaultHeader As HeaderFooter = CreateDefaultHeader(dc)
Dim firstHeader As HeaderFooter = CreateFirstHeader(dc)
' Add the headers into the collection.
section1.HeadersFooters.Add(defaultHeader)
section1.HeadersFooters.Add(firstHeader)
' Set that main section has a different header on the first page.
section1.PageSetup.TitlePage = True
' Add some content.
Dim p As New Paragraph(dc, "My father's family name being Pirrip, and my Christian name Philip, " & "my infant tongue could make of both names nothing longer or more explicit than Pip. So, I called myself " & "Pip, and came to be called Pip. I give Pirrip as my father's family name, on the authority of his " & "tombstone and my sister, -Mrs. Joe Gargery, who married the blacksmith.")
Dim totalPars As Integer = 15
For i As Integer = 0 To totalPars - 1
section1.Blocks.Add(p.Clone(True))
Next i
' Add another header and content in the document.
' Let's create a one more section.
Dim section2 As New Section(dc)
dc.Sections.Add(section2)
' Create a new header.
Dim header As New HeaderFooter(dc, HeaderFooterType.HeaderDefault)
header.Content.Start.Insert("Chapter II - another header.", New CharacterFormat() With {
.FontColor = Color.Blue,
.Size = 18
})
' Add the header into the Section2.
section2.HeadersFooters.Add(header)
' Add some content.
section2.Content.Start.Insert("My sister, Mrs. Joe Gargery, was more than twenty years older than I, " & "and had established a great reputation with herself and the neighbors because she had brought me " & "up ""by hand."" Having at that time to find out for myself what the expression meant, and knowing " & "her to have a hard and heavy hand, and to be much in the habit of laying it upon her husband as well " & "as upon me, I supposed that Joe Gargery and I were both brought up by hand.")
' Save the document into DOCX format.
dc.Save(documentPath)
' Open the result for demonstration purposes.
System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(documentPath) With {.UseShellExecute = True})
End Sub
Private Shared Function CreateDefaultHeader(ByVal dc As DocumentCore) As HeaderFooter
Dim header As New HeaderFooter(dc, HeaderFooterType.HeaderDefault)
header.Content.Start.Insert("Chapter I - This is the default header", New CharacterFormat() With {
.FontName = "Verdana",
.Size = 18.0,
.FontColor = Color.Orange
})
Return header
End Function
Private Shared Function CreateFirstHeader(ByVal dc As DocumentCore) As HeaderFooter
Dim header As New HeaderFooter(dc, HeaderFooterType.HeaderFirst)
header.Content.Start.Insert("Charles Dickens. Great Expectations - 1st page header", New CharacterFormat() With {
.FontName = "Verdana",
.Size = 18.0,
.FontColor = Color.DarkGreen
})
Return header
End Function
End Class
End Namespace
Если вам нужен пример кода или у вас есть вопрос: напишите нам по адресу support@sautinsoft.ru или спросите в онлайн-чате (правый нижний угол этой страницы) или используйте форму ниже: