После долгой охоты я сдался и попросил помощи. Я пытаюсь создать текстовый документ, используя OpenXML, который имеет изображение в верхнем и нижнем колонтитулах, и содержит таблицу. Я могу отформатировать документ, создать таблицы, применить текст и т. Д., Но не могу ничего добавить в заголовок. Справка, которую я нашел до сих пор, либо показывает, как применить заголовок из другого документа, либо не работает с тем, как я построил свой документ. Я был бы очень благодарен за помощь. Я, наверное, только что пропустил что-то простое, но я в тупике.
Все, что мне нужно, это пример создания документа с изображениями в верхнем и нижнем колонтитулах и таблицей в основном теле.
спасибо
Public Sub CreateWordprocessingDocument (ByVal filepath As String)
Dim wordDocument As WordprocessingDocument = WordprocessingDocument.Create(filepath, WordprocessingDocumentType.Document)
Using wordDocument
' Add a main document part.
Dim mainPart As MainDocumentPart = wordDocument.AddMainDocumentPart()
Dim headerPart As HeaderPart = mainPart.AddNewPart(Of HeaderPart)()
' Create the document structure and add some text.
mainPart.Document = New Document()
Dim headerFooter As Header = mainPart.Document.AppendChild(New Header)
Dim headerRun As New Run
Dim headerText As New Text
Dim headerParagraph As New Paragraph
Dim header As New Header
headerText.Text = "burp"
headerRun.Append(headerText)
headerParagraph.Append(headerRun)
header.Append(headerParagraph)
headerFooter.Append(header)
'code to support orientation And margins
Dim sectProp As SectionProperties = New SectionProperties()
Dim PageSize As PageSize = New PageSize() With {.Width = 16838, .Height = 11906, .Orient = PageOrientationValues.Landscape}
Dim PageMargin As PageMargin = New PageMargin() With {.Top = 720, .Right = 720, .Bottom = 720, .Left = 720}
sectProp.Append(PageSize)
sectProp.Append(PageMargin)
Dim body As Body = mainPart.Document.AppendChild(New Body())
' Create an empty table.
body.Append(sectProp)
Dim table As New Table()
' Create a TableProperties object and specify its border information.
'This sets up the table properties. Any cells added subsequently will follow these properties
Dim tblProp As New TableProperties(New TableBorders(
New TopBorder() With {.Val = New EnumValue(Of BorderValues)(BorderValues.BasicThinLines), .Size = 5}, '.size is the weight of the line. 10 = 1 point thick line
New BottomBorder() With {.Val = New EnumValue(Of BorderValues)(BorderValues.BasicThinLines), .Size = 5},
New LeftBorder() With {.Val = New EnumValue(Of BorderValues)(BorderValues.BasicThinLines), .Size = 5},
New RightBorder() With {.Val = New EnumValue(Of BorderValues)(BorderValues.BasicThinLines), .Size = 5},
New InsideHorizontalBorder() With {.Val = New EnumValue(Of BorderValues)(BorderValues.BasicThinLines), .Size = 5}, 'internal borders within a table
New InsideVerticalBorder() With {.Val = New EnumValue(Of BorderValues)(BorderValues.BasicThinLines), .Size = 5}))
' Append the TableProperties object to the empty table.
table.AppendChild(Of TableProperties)(tblProp)
'Build the table dynamically from top left to bottom right adding in properties as we go
'#################
'#CREATING TABLE #
'#################
'Specify the width property of all the cells at the top of the sheet.
'first row
Dim row1 As New TableRow()
row1.Append(createcell("Grey Row", 1500, "CCCCCC"))
row1.Append(createcellMerge("", 1500))
table.Append(row1)
'#####adding an image to a cell - this works. Need to work on the positioning once I have the size of the cell
Dim imagePart As ImagePart = mainPart.AddImagePart(ImagePartType.Jpeg)
Using stream As New FileStream(pictureName, FileMode.Open)
imagePart.FeedData(stream)
End Using
'AddImageToCell(tc1, mainPart.GetIdOfPart(imagePart))
body.Append(table)
End Using
Process.Start(filepath)
End Sub