Working with Word for WPF / Advanced Level Working / Creating Word Document with different paper sizes
Creating Word Document with different paper sizes

Word for WPF gives you the flexibility to create a word document with different paper sizes. You can use PaperKind enum to specify any of the available standard paper sizes.

Note that a class named WordUtils is used in the code given below. It is available in the product sample located at the following location on your system:
Documents\ComponentOne Samples\WPF\WordCreator
You can use these classes in your application from the mentioned location.

The implementation of PaperKind enum is given in the following code:

' create one page with each paper size
Dim firstPage As Boolean = True
For Each fi As var In GetType(PaperKind).GetFields(BindingFlags.[Static] Or BindingFlags.[Public])
        ' Silverlight/Phone doesn't have Enum.GetValues
        Dim pk As PaperKind = DirectCast(fi.GetValue(Nothing), PaperKind)

        ' skip custom size
        If pk = PaperKind.[Custom] Then
                Continue For
        End If

        ' add new page for every page after the first one
        If Not firstPage Then
                word.PageBreak()
        End If
        firstPage = False

        ' set paper kind and orientation
        'rtf.PaperKind = pk;
        word.Landscape = Not word.Landscape

        ' draw some content on the page
        rc = WordUtils.PageRectangle(word)
        rc = WordUtils.Inflate(rc, -6, -6)
        Dim text As String = String.Format("PaperKind: [{0}];" & vbCr & vbLf & "Landscape: [{1}];" & vbCr & vbLf & "Font: [Tahoma 18pt]", pk, word.Landscape)
        word.DrawString(text, font, Colors.Black, rc, sf)
        word.DrawRectangle(Colors.Black, rc)
Next