Module1.vb
Imports System.Text
Imports ByteScout.InvoiceParser
Module Module1
Sub Main()
Dim inputFolder As String = ".\invoices"
Dim outputFile As String = ".\result.csv"
' Create InvoiceParser instance
Using parser As InvoiceParser = New InvoiceParser("demo", "demo")
' Disable fallback to default generic template if document is nor recognized
parser.FallbackToGenericTemplate = False
' Setup CSV output
Dim csvOptions As CSVOptions = New CSVOptions()
csvOptions.Encoding = Encoding.UTF8
csvOptions.SeparatorCharacter = ","
csvOptions.QuotationCharacter = """"
csvOptions.UnwrapMultilineValues = True
' Parse all document in input folder and save results to CSV file
BatchProcessing.ParseFolderToCSV(parser, inputFolder, outputFile, csvOptions, AddressOf ProcessingCallback)
End Using
' Open generated CSV file in default associated application (for demo purpose)
Process.Start(outputFile)
End Sub
Sub ProcessingCallback(fileName As String, parsingResult As Boolean, progress As Double, innerException As Exception, ByRef cancel As Boolean)
Console.WriteLine($"{progress}% Processed file ""{fileName}""")
Console.WriteLine($" Result: {parsingResult}")
If Not parsingResult
If innerException IsNot Nothing
Console.WriteLine(innerException.ToString())
End If
Console.Write("Continue processing? (y/n): ")
Dim key As Integer = Console.Read()
If key = 110 ' n
Console.WriteLine("Interrupted.")
cancel = True
End If
End If
End Sub
End Module