ByteScout BarCode Generator SDK - VB.NET - GenerateWordDocumentWithBarcodes - ByteScout

ByteScout BarCode Generator SDK – VB.NET – GenerateWordDocumentWithBarcodes

  • Home
  • /
  • Articles
  • /
  • ByteScout BarCode Generator SDK – VB.NET – GenerateWordDocumentWithBarcodes

ByteScout BarCode Generator SDK – VB.NET – GenerateWordDocumentWithBarcodes


' This example uses Word Automation to create a document, add some text, add a table, 
' fill it with random data and generate barcode images for it.

Imports System.Drawing
Imports System.Globalization
Imports System.IO
Imports System.Reflection
Imports Microsoft.Office.Interop.Word
Imports Word = Microsoft.Office.Interop.Word
Imports Bytescout.BarCode

Class Program
	Private Shared Sub Main(args As String())
		Dim [optional] As Object = Missing.Value
		Dim endOfDocBookmark As Object = "\endofdoc"
		' \endofdoc is a predefined bookmark 

		' start Word
		Dim word As _Application = New Application()
		word.Visible = False

		' create new document
		Dim document As _Document = word.Documents.Add([optional], [optional], [optional], [optional])

		' insert a paragraph at the beginning of the document
		Dim paragraph1 As Paragraph = document.Content.Paragraphs.Add([optional])
		paragraph1.Range.Text = "Heading 1"
		paragraph1.Range.Font.Bold = 1
		paragraph1.Format.SpaceAfter = 24
		' 24 pt spacing after paragraph

		' insert another paragraph
		Dim range As Object = document.Bookmarks.get_Item(endOfDocBookmark).Range
		Dim paragraph2 As Paragraph = document.Content.Paragraphs.Add(range)
		paragraph2.Range.Text = "This is a sentence of normal text. Now here is a table:"
		paragraph2.Range.Font.Bold = 0
		paragraph2.Format.SpaceAfter = 24

		' insert a 5 x 2 table, make the first header row bold and italic
		range = document.Bookmarks.get_Item(endOfDocBookmark).Range
		Dim table As Table = document.Tables.Add(DirectCast(range, Range), 5, 2, [optional], [optional])
		table.Cell(1, 1).Range.Text = "Value"
		' 1st column header
		table.Cell(1, 2).Range.Text = "Barcode"
		' 2nd column header
		table.Rows(1).Range.Font.Bold = 1
		table.Rows(1).Range.Font.Italic = 1
		AddBorders(table.Cell(1, 1).Range)
		AddBorders(table.Cell(1, 2).Range)

		Dim random As New Random()
		Dim tempImage As String = Path.Combine(Path.GetTempPath(), "tempImage.png")

		' create barcode object
		Dim barcode As New Barcode("demo", "demo")
		barcode.Symbology = SymbologyType.Code128
		barcode.DrawCaption = False

		' fill the table with random data and add barcode images
		For row As Integer = 2 To 5
			Dim randomValue As String = random.[Next]().ToString(CultureInfo.InvariantCulture)
			Dim cell As Range = table.Cell(row, 1).Range
			cell.Text = randomValue


			' generate barcode and save it to temporary image file
			barcode.Value = randomValue

			' put barcode image to second column
			cell = table.Cell(row, 2).Range
			cell.InlineShapes.AddPicture(tempImage, [optional], [optional], [optional])


		' save document
		Dim fileName As Object = "sample.doc"
		' use full file path in your app
		document.SaveAs(fileName, [optional], [optional], [optional], [optional], [optional], _
			[optional], [optional], [optional], [optional], [optional], [optional], _
			[optional], [optional], [optional], [optional])

		' quit Word
		Dim saveChanges As Object = True
		word.Quit(saveChanges, [optional], [optional])

		System.Diagnostics.Process.Start(DirectCast(fileName, String))
	End Sub

	' Adds borders to provided Range
	Private Shared Sub AddBorders(cell As Range)
		AddressOf cell.Borders(WdBorderType.wdBorderLeft).LineStyle = WdLineStyle.wdLineStyleSingle
		AddressOf cell.Borders(WdBorderType.wdBorderTop).LineStyle = WdLineStyle.wdLineStyleSingle
		AddressOf cell.Borders(WdBorderType.wdBorderRight).LineStyle = WdLineStyle.wdLineStyleSingle
		AddressOf cell.Borders(WdBorderType.wdBorderBottom).LineStyle = WdLineStyle.wdLineStyleSingle
	End Sub
End Class

  Click here to get your Free Trial version of the SDK