What is ByteScout Document Parser SDK? It is the robost offline data extraction platform for template based data extraction and processing. Supports high load with millions of documents as input. Templates can be quickly created and updated with no special technical knowledge required.
  On-demand (REST Web API) version: 
   Web API (on-demand version)
  
  On-premise offline SDK for Windows: 
   60 Day Free Trial (on-premise)
      
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27703.2026
MinimumVisualStudioVersion = 10.0.40219.1
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LifeAndAnnuityQuoteRequest", "LifeAndAnnuityQuoteRequest.vbproj", "{A5FA1293-C15B-4249-A771-ED4301658454}"
EndProject
Global
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
		Debug|Any CPU = Debug|Any CPU
		Release|Any CPU = Release|Any CPU
	EndGlobalSection
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
		{A5FA1293-C15B-4249-A771-ED4301658454}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{A5FA1293-C15B-4249-A771-ED4301658454}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{A5FA1293-C15B-4249-A771-ED4301658454}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{A5FA1293-C15B-4249-A771-ED4301658454}.Release|Any CPU.Build.0 = Release|Any CPU
	EndGlobalSection
	GlobalSection(SolutionProperties) = preSolution
		HideSolutionNode = FALSE
	EndGlobalSection
	GlobalSection(ExtensibilityGlobals) = postSolution
		SolutionGuid = {DCA85560-1523-40E0-917A-5BB3AA7E031F}
	EndGlobalSection
EndGlobal
    
    60 Day Free Trial or Visit ByteScout Document Parser SDK Home Page
    
    Explore ByteScout Document Parser SDK Documentation
    
    Explore Samples
    
    Sign Up for ByteScout Document Parser SDK Online Training
    Get Your API Key
    
    Explore Web API Docs
    
    Explore Web API Samples    
      <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{A5FA1293-C15B-4249-A771-ED4301658454}</ProjectGuid>
    <OutputType>Exe</OutputType>
    <StartupObject>LifeAndAnnuityQuoteRequest.Module1</StartupObject>
    <RootNamespace>LifeAndAnnuityQuoteRequest</RootNamespace>
    <AssemblyName>LifeAndAnnuityQuoteRequest</AssemblyName>
    <FileAlignment>512</FileAlignment>
    <MyType>Console</MyType>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <DefineDebug>true</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <OutputPath>bin\Debug\</OutputPath>
    <DocumentationFile>LifeAndAnnuityQuoteRequest.xml</DocumentationFile>
    <NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <DebugType>pdbonly</DebugType>
    <DefineDebug>false</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DocumentationFile>LifeAndAnnuityQuoteRequest.xml</DocumentationFile>
    <NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
  </PropertyGroup>
  <PropertyGroup>
    <OptionExplicit>On</OptionExplicit>
  </PropertyGroup>
  <PropertyGroup>
    <OptionCompare>Binary</OptionCompare>
  </PropertyGroup>
  <PropertyGroup>
    <OptionStrict>Off</OptionStrict>
  </PropertyGroup>
  <PropertyGroup>
    <OptionInfer>On</OptionInfer>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="ByteScout.DocumentParser, Version=1.0.0.100, Culture=neutral, PublicKeyToken=f7dd1bd9d40a50eb, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>c:\Program Files\ByteScout Document Parser SDK\net40\ByteScout.DocumentParser.dll</HintPath>
    </Reference>
    <Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
      <HintPath>packages\Newtonsoft.Json.12.0.3\lib\net40\Newtonsoft.Json.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Xml" />
    <Reference Include="System.Core" />
    <Reference Include="System.Xml.Linq" />
  </ItemGroup>
  <ItemGroup>
    <Import Include="Microsoft.VisualBasic" />
    <Import Include="System" />
    <Import Include="System.Collections" />
    <Import Include="System.Collections.Generic" />
    <Import Include="System.Data" />
    <Import Include="System.Diagnostics" />
    <Import Include="System.Linq" />
    <Import Include="System.Xml.Linq" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Module1.vb" />
  </ItemGroup>
  <ItemGroup>
    <None Include="..\..\SampleGroupDisabilityForm.pdf">
      <Link>SampleGroupDisabilityForm.pdf</Link>
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
    <None Include="SampleGroupDisabilityForm.yml">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
    <None Include="packages.config" />
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
</Project>
    
    60 Day Free Trial or Visit ByteScout Document Parser SDK Home Page
    
    Explore ByteScout Document Parser SDK Documentation
    
    Explore Samples
    
    Sign Up for ByteScout Document Parser SDK Online Training
    Get Your API Key
    
    Explore Web API Docs
    
    Explore Web API Samples    
      Imports System.IO
Imports System.Text
Imports ByteScout.DocumentParser
Imports Newtonsoft.Json.Linq
Module Module1
    Sub Main()
        ' Sample document containing life and annuity quote request form
        Dim sampleDocument As String = ".\SampleGroupDisabilityForm.pdf"
        ' Sample template
        Dim sampleTemplate As String = ".\SampleGroupDisabilityForm.yml"
        ' Create DocumentParser instance
        Using documentParser As New DocumentParser("demo", "demo")
            ' Add sample template
            documentParser.AddTemplate(sampleTemplate)
            ' Parse document data in JSON format
            Dim jsonString As String = documentParser.ParseDocument(sampleDocument, OutputFormat.JSON)
            ' Parse to Json Fields
            Dim oRet = ParseJsonFields(jsonString)
            ' Display some of data to console
            Console.WriteLine({code}quot;Parsing Details:{Environment.NewLine}------------------------")
            Console.WriteLine({code}quot;Contact Person: {oRet.ContactPerson}")
            Console.WriteLine({code}quot;Business Name: {oRet.BusinessName}")
            Console.WriteLine({code}quot;Business Address: {oRet.BusinessAddress}")
            Console.WriteLine({code}quot;Business Type: {oRet.BusinessType}")
            Console.WriteLine({code}quot;Phone: {oRet.Phone}")
            Console.WriteLine({code}quot;Email: {oRet.Email}")
            ' Export list of census to csv format
            Dim csvOutputFile As String = "result.csv"
            Dim csvString = ConvertToCsv(oRet.lstCensusTable)
            File.WriteAllText(csvOutputFile, csvString)
            Console.WriteLine({code}quot;{Environment.NewLine}{csvOutputFile} generated successfully!")
        End Using
        Console.WriteLine()
        Console.WriteLine("Press any key to continue...")
        Console.ReadLine()
    End Sub
    ''' <summary>
    ''' Parse Json Fields
    ''' </summary>
    Function ParseJsonFields(ByVal jsonInput As String) As FormVM
        Dim jsonObj As JObject = JObject.Parse(jsonInput)
        Dim oRet As New FormVM()
        oRet.ContactPerson = CStr(jsonObj("fields")("contactPerson")("value"))
        oRet.BusinessName = CStr(jsonObj("fields")("businessName")("value"))
        oRet.BusinessAddress = CStr(jsonObj("fields")("businessAddress")("value"))
        oRet.BusinessType = CStr(jsonObj("fields")("businessType")("value"))
        oRet.Phone = CStr(jsonObj("fields")("phone")("value"))
        oRet.Email = CStr(jsonObj("fields")("email")("value"))
        Dim censusTable = jsonObj("tables").Where(Function(p) p.Value(Of String)("name") = "CencusTable")
        If Not censusTable Is Nothing Then
            Dim rows = censusTable.Values("rows").First()
            If Not rows Is Nothing And rows.Count() > 0 Then
                For i As Int32 = 1 To rows.Count() - 1
                    Dim oCensus As New CensusTableVm()
                    ' Parse individual data
                    oCensus.SrNo = rows.ElementAt(i).ElementAt(0).ElementAt(0).Value(Of String)("value")
                    oCensus.DOB = rows.ElementAt(i).ElementAt(1).ElementAt(0).Value(Of String)("value")
                    oCensus.Gender = rows.ElementAt(i).ElementAt(2).ElementAt(0).Value(Of String)("value")
                    oCensus.Occupation = rows.ElementAt(i).ElementAt(3).ElementAt(0).Value(Of String)("value")
                    oCensus.Salary = rows.ElementAt(i).ElementAt(4).ElementAt(0).Value(Of String)("value")
                    oCensus.IsShortTermDisability = rows.ElementAt(i).ElementAt(5).ElementAt(0).Value(Of String)("value")
                    oCensus.IsLongTernDisability = rows.ElementAt(i).ElementAt(6).ElementAt(0).Value(Of String)("value")
                    oCensus.LifeInsuCoverAmt = rows.ElementAt(i).ElementAt(7).ElementAt(0).Value(Of String)("value")
                    oRet.lstCensusTable.Add(oCensus)
                Next
            End If
        End If
        Return oRet
    End Function
    ''' <summary>
    ''' Convert to Csv Format
    ''' </summary>
    Function ConvertToCsv(ByVal lstCensusTable As List(Of CensusTableVm)) As String
        Dim oRet As New StringBuilder(String.Empty)
        ' Get Header Row
        oRet.AppendLine(getCsvTitleRow())
        ' Put Child Rows
        For Each item In lstCensusTable
            oRet.AppendLine(item.ToString())
        Next
        Return oRet.ToString()
    End Function
    Class FormVM
        Public Property ContactPerson As String
        Public Property BusinessName As String
        Public Property BusinessAddress As String
        Public Property BusinessType As String
        Public Property Phone As String
        Public Property Email As String
        Public Property lstCensusTable As List(Of CensusTableVm) = New List(Of CensusTableVm)()
    End Class
    Class CensusTableVm
        Public Property SrNo As String
        Public Property DOB As String
        Public Property Gender As String
        Public Property Occupation As String
        Public Property Salary As String
        Public Property IsShortTermDisability As String
        Public Property IsLongTernDisability As String
        Public Property LifeInsuCoverAmt As String
        Public Overrides Function ToString() As String
            Return {code}quot;{SrNo},{DOB},{Gender},{Occupation},{Salary},{IsShortTermDisability},{IsLongTernDisability},{LifeInsuCoverAmt}"
        End Function
    End Class
    Public Function getCsvTitleRow() As String
        Return "SrNo,DOB,Gender,Occupation,Salary,IsShortTermDisability,IsLongTermDisability,LifeInsuCoverAmt"
    End Function
End Module
    
    60 Day Free Trial or Visit ByteScout Document Parser SDK Home Page
    
    Explore ByteScout Document Parser SDK Documentation
    
    Explore Samples
    
    Sign Up for ByteScout Document Parser SDK Online Training
    Get Your API Key
    
    Explore Web API Docs
    
    Explore Web API Samples    
      templateVersion: 3
templatePriority: 0
sourceId: Untitled document kind
detectionRules:
  keywords: []
fields:
  CencusTable:
    type: rectangle
    dataType: table
    rectangle:
    - 27
    - 324.75
    - 554.25
    - 358.5
    pageIndex: 0
    rowMergingRule: byBorders
  ContactPerson:
    type: rectangle
    rectangle:
    - 178.5
    - 111
    - 76.5
    - 15
    pageIndex: 0
  BusinessName:
    type: rectangle
    rectangle:
    - 177.75
    - 126
    - 105
    - 17.25
    pageIndex: 0
  BusinessAddress:
    type: rectangle
    rectangle:
    - 183
    - 144.75
    - 187.5
    - 24
    pageIndex: 0
  BusinessType:
    type: rectangle
    rectangle:
    - 183.75
    - 206.25
    - 77.25
    - 19.5
    pageIndex: 0
  Phone:
    type: rectangle
    rectangle:
    - 181.5
    - 236.25
    - 86.25
    - 15
    pageIndex: 0
  Email:
    type: rectangle
    rectangle:
    - 182.25
    - 250.5
    - 112.5
    - 17.25
    pageIndex: 0
    
    60 Day Free Trial or Visit ByteScout Document Parser SDK Home Page
    
    Explore ByteScout Document Parser SDK Documentation
    
    Explore Samples
    
    Sign Up for ByteScout Document Parser SDK Online Training
    Get Your API Key
    
    Explore Web API Docs
    
    Explore Web API Samples    
      <?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40" />
</packages>
    
    60 Day Free Trial or Visit ByteScout Document Parser SDK Home Page
    
    Explore ByteScout Document Parser SDK Documentation
    
    Explore Samples
    
    Sign Up for ByteScout Document Parser SDK Online Training
    Get Your API Key
    
    Explore Web API Docs
    
    Explore Web API Samples    
60 Day Free Trial or Visit ByteScout Document Parser SDK Home Page
Explore ByteScout Document Parser SDK Documentation
Explore Samples
Sign Up for ByteScout Document Parser SDK Online Training
Get Your API Key
Explore Web API Docs
Explore Web API Samples