Link Search Menu Expand Document

Convert XML to PDF - VB.NET

PDF SDK sample in VB.NET demonstrating ‘Convert XML to PDF’

Program.vb
Imports System.Xml
Imports Bytescout.PDF

''' <summary>
''' This example demonstrates how to create table from some XML data.
''' Since your XML file has different structure the example just shows technique of XML data reading 
''' and PDF table creation.
''' </summary>
Class Program

    Shared Sub Main()

		' Load XML document
		Dim xmlDocument = New XmlDocument()
		xmlDocument.Load("sample.xml")

		' Read columns information from XML data
		Dim columns = New List(Of String)()
		Dim columnNodeList = xmlDocument.SelectNodes("/Report/Columns/Column")
		For Each node As XmlNode In columnNodeList
			columns.Add(node.Attributes("Name").Value)
		Next

		' Read row nodes from XML data
		Dim rowNodeList = xmlDocument.SelectNodes("/Report/ReportData")


		' Create new PDF document
		Dim pdfDocument = New Document()
		pdfDocument.RegistrationName = "demo"
		pdfDocument.RegistrationKey = "demo"

		' If you wish to load an existing document uncomment the line below And comment the Add page section instead
		' pdfDocument.Load(".\existing_document.pdf")

		' Add page
		Dim page = New Page(PaperFormat.A4)
		pdfDocument.Pages.Add(page)

		Dim lightGrayColor = New ColorGray(200)
		Dim whiteColor = New ColorGray(255)


		' Create PDF table
		Dim table = New Table()
		table.BackgroundColor = lightGrayColor

		' Add columns
		For c = 0 To columns.Count - 1

			Dim column = New TableColumn(columns(c), columns(c))
			' Set column width
			column.Width = If(c = 0, 100, 60)
			table.Columns.Add(column)
		Next

		' Add rows
		For Each rowNode As XmlNode In rowNodeList

			' Create new row and set its background color
			Dim row = table.NewRow()
			row.BackgroundColor = whiteColor

			' Get cell values from XML data
			For Each childNode As XmlNode In rowNode.ChildNodes

				' Get cell info from XML data
				Dim columnName = childNode.Name
				Dim columnIndex = columns.IndexOf(childNode.Name)
				Dim cellValue = childNode.InnerText

				' Set cell text
				row(columnName).Text = cellValue
				' Set cell text alignment
				row(columnName).TextFormat.HorizontalAlign = If(columnIndex = 0, HorizontalAlign.Left, HorizontalAlign.Right)
			Next

			' Add the row to the table
			table.Rows.Add(row)
		Next

		' Draw the table on canvas
		page.Canvas.DrawTable(table, 20, 20)


		' Save document to file
		pdfDocument.Save("result.pdf")

		' Cleanup 
		pdfDocument.Dispose()

		' Open document in default PDF viewer application
		Process.Start("result.pdf")

	End Sub

End Class

Resources.Designer.vb
��'------------------------------------------------------------------------------

' <auto-generated>

'     This code was generated by a tool.

'     Runtime Version:4.0.30319.42000

'

'     Changes to this file may cause incorrect behavior and will be lost if

'     the code is regenerated.

' </auto-generated>

'------------------------------------------------------------------------------



Option Strict On

Option Explicit On



Imports System



Namespace My.Resources

    

    'This class was auto-generated by the StronglyTypedResourceBuilder

    'class via a tool like ResGen or Visual Studio.

    'To add or remove a member, edit your .ResX file then rerun ResGen

    'with the /str option, or rebuild your VS project.

    '''<summary>

    '''  A strongly-typed resource class, for looking up localized strings, etc.

    '''</summary>

    <Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"),  _

     Global.System.Diagnostics.DebuggerNonUserCodeAttribute(),  _

     Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(),  _

     Global.Microsoft.VisualBasic.HideModuleNameAttribute()>  _

    Friend Module Resources

        

        Private resourceMan As Global.System.Resources.ResourceManager

        

        Private resourceCulture As Global.System.Globalization.CultureInfo

        

        '''<summary>

        '''  Returns the cached ResourceManager instance used by this class.

        '''</summary>

        <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)>  _

        Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager

            Get

                If Object.ReferenceEquals(resourceMan, Nothing) Then

                    Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("ConvertXmlToPdfExample.Resources", GetType(Resources).Assembly)

                    resourceMan = temp

                End If

                Return resourceMan

            End Get

        End Property

        

        '''<summary>

        '''  Overrides the current thread's CurrentUICulture property for all

        '''  resource lookups using this strongly typed resource class.

        '''</summary>

        <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)>  _

        Friend Property Culture() As Global.System.Globalization.CultureInfo

            Get

                Return resourceCulture

            End Get

            Set

                resourceCulture = value

            End Set

        End Property

    End Module

End Namespace


Settings.Designer.vb
��'------------------------------------------------------------------------------

' <auto-generated>

'     This code was generated by a tool.

'     Runtime Version:4.0.30319.42000

'

'     Changes to this file may cause incorrect behavior and will be lost if

'     the code is regenerated.

' </auto-generated>

'------------------------------------------------------------------------------



Option Strict On

Option Explicit On





Namespace My



    <Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _

     Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0"), _

     Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _

    Partial Friend NotInheritable Class MySettings

        Inherits Global.System.Configuration.ApplicationSettingsBase



        Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()), MySettings)



#Region "My.Settings Auto-Save Functionality"

#If _MyType = "WindowsForms" Then

    Private Shared addedHandler As Boolean



    Private Shared addedHandlerLockObject As New Object



    <Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _

    Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)

        If My.Application.SaveMySettingsOnExit Then

            My.Settings.Save()

        End If

    End Sub

#End If

#End Region



        Public Shared ReadOnly Property [Default]() As MySettings

            Get



#If _MyType = "WindowsForms" Then

               If Not addedHandler Then

                    SyncLock addedHandlerLockObject

                        If Not addedHandler Then

                            AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings

                            addedHandler = True

                        End If

                    End SyncLock

                End If

#End If

                Return defaultInstance

            End Get

        End Property

    End Class

End Namespace



Namespace My



    <Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _

     Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _

     Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _

    Friend Module MySettingsProperty



        <Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _

        Friend ReadOnly Property Settings() As Global.ConvertXmlToPdfExample.My.MySettings

            Get

                Return Global.ConvertXmlToPdfExample.My.MySettings.Default

            End Get

        End Property

    End Module

End Namespace


Download Source Code (.zip)

Return to the previous page Explore PDF SDK