The coding tutorials are designed to help you test the features without need to write your own code. PDF invoice parsing in VB.NET can be implemented with ByteScout PDF Extractor SDK. ByteScout PDF Extractor SDK is the SDK is designed to help developers with pdf tables and pdf data extraction from unstructured documents like pdf, tiff, scans, images, scanned and electronic forms. The library is powered by OCR, computer vision and AI to provide unique functionality like table detection, automatic table structure extraction, data restoration, data restructuring and reconstruction. Supports PDF, TIFF, PNG, JPG images as input and can output CSV, XML, JSON formatted data. Includes full set of utilities like pdf splitter, pdf merger, searchable pdf maker and other utilities.
Fast application programming interfaces of ByteScout PDF Extractor SDK for VB.NET plus the instruction and the VB.NET code below will help you quickly learn PDF invoice parsing. VB.NET sample code is all you need: copy and paste the code to your VB.NET application’s code editor, add a reference to ByteScout PDF Extractor SDK (if you haven’t added yet) and you are ready to go! Use of ByteScout PDF Extractor SDK in VB.NET is also explained in the documentation included along with the product.
ByteScout PDF Extractor SDK is available as free trial. You may get it from our website along with all other source code samples for VB.NET applications.
On-demand (REST Web API) version:
Web API (on-demand version)
On-premise offline SDK for Windows:
60 Day Free Trial (on-premise)
Imports System.Drawing
Imports Bytescout.PDFExtractor
Module Module1
Sub Main()
' Create TextExtractor instance
Dim textExtractor = New TextExtractor("demo", "demo")
textExtractor.WordMatchingMode = WordMatchingMode.ExactMatch ' Set exact search (default is SmartSearch that works like in Adobe Reader)
' Create XMLExtractor instance
Dim xmlExtractor = New XMLExtractor("demo", "demo")
' Load document
textExtractor.LoadDocumentFromFile("Invoice.pdf")
xmlExtractor.LoadDocumentFromFile("Invoice.pdf")
' Results
Dim invoiceNo = String.Empty
Dim invoiceDate = String.Empty
Dim total = String.Empty
Dim tableData = String.Empty
' Iterate pages
For i As Integer = 0 To textExtractor.GetPageCount() - 1
Dim pageRectangle = textExtractor.GetPageRectangle(i)
Dim tableRect = New RectangleF(0, 0, pageRectangle.Width, 0)
' Search for "Invoice No."
If textExtractor.Find(i, "Invoice No.", False) Then
' Get the found text rectangle
Dim textRect = textExtractor.FoundText.Bounds
' Assume the text at right is the invoice number.
' Shift the rectangle to the right:
textRect.X = textRect.Right
textRect.Width = pageRectangle.Right - textRect.Left
' Set the extraction region and extract the text
textExtractor.SetExtractionArea(textRect)
invoiceNo = textExtractor.GetTextFromPage(i).Trim()
End If
' Search for "Invoice Date" and extract text at right
If textExtractor.Find(i, "Invoice Date", False) Then
Dim textRect = textExtractor.FoundText.Bounds
textRect.X = textRect.Right
textRect.Width = pageRectangle.Right - textRect.Left
textExtractor.SetExtractionArea(textRect)
invoiceDate = textExtractor.GetTextFromPage(i).Trim()
End If
' Search for "Quantity" keyword to detect the top of the tabular data rectangle
If textExtractor.Find(i, "Quantity", False) Then
' Keep the top table coordinate
tableRect.Y = textExtractor.FoundText.Bounds.Top ' use textRect.Bottom if you want to skip column headers
End If
' Search and extract "TOTAL" (it will be also the bottom of tabular data rectangle)
If textExtractor.Find(i, "TOTAL", True) Then ' case sensitive!
Dim textRect = textExtractor.FoundText.Bounds
textRect.X = textRect.Right
textRect.Width = pageRectangle.Right - textRect.Left
textExtractor.SetExtractionArea(textRect)
total = textExtractor.GetTextFromPage(i).Trim()
' Calculate the table height
tableRect.Height = textRect.Top - tableRect.Top
End If
' Extract tabular data using XMLExtractor
If tableRect.Height > 0 Then
xmlExtractor.SetExtractionArea(tableRect)
tableData = xmlExtractor.GetXMLFromPage(i)
End If
Next
' Display extracted data
Console.WriteLine("Invoice No.: " + invoiceNo)
Console.WriteLine("Invoice Date: " + invoiceDate)
Console.WriteLine("TOTAL: " + total)
Console.WriteLine("Table Data: ")
Console.WriteLine(tableData)
' Cleanup
textExtractor.Dispose()
xmlExtractor.Dispose()
Console.WriteLine()
Console.WriteLine("Press any key...")
Console.ReadKey()
End Sub
End Module
60 Day Free Trial or Visit ByteScout PDF Extractor SDK Home Page
Explore ByteScout PDF Extractor SDK Documentation
Explore Samples
Sign Up for ByteScout PDF Extractor SDK Online Training
Get Your API Key
Explore Web API Docs
Explore Web API Samples
60 Day Free Trial or Visit ByteScout PDF Extractor SDK Home Page
Explore ByteScout PDF Extractor SDK Documentation
Explore Samples
Sign Up for ByteScout PDF Extractor SDK Online Training
Get Your API Key
Explore Web API Docs
Explore Web API Samples
also available as: