Free Trial
Web API version
Licensing
Request A Quote
HAVE QUESTIONS OR NEED HELP? SUBMIT THE SUPPORT REQUEST FORM or write email to SUPPORT@BYTESCOUT.COM
Extract Text from Foldable Brochure Booklet | C#
Program.cs:
C#
using ByteScout.DocumentParser; using Newtonsoft.Json.Linq; using System; using System.Diagnostics; using System.IO; using System.Text; namespace ExtractTextFromFoldableBrochure { class Program { static void Main(string[] args) { // Sample document containing foldable PDF string sampleDocument = @".\SampleFoldable.pdf"; // Sample template string sampleTemplate = @".\SampleFoldable.yml"; // Output var resFile = "result.txt"; var sOutput = new StringBuilder(string.Empty); // Create DocumentParser instance using (DocumentParser documentParser = new DocumentParser("demo", "demo")) { // Add sample template documentParser.AddTemplate(sampleTemplate); // Parse document data in JSON format string jsonString = documentParser.ParseDocument(sampleDocument, OutputFormat.JSON); // Parse json to foldable structure var parsedRes = ParseJsonToFoldableStructure(jsonString); // Append all parts to return output sOutput.AppendLine(parsedRes.Part1); sOutput.AppendLine(parsedRes.Part2); sOutput.AppendLine(parsedRes.Part3); // Write output file File.WriteAllText(resFile, sOutput.ToString()); Console.WriteLine($"Extracted text saved to {resFile}"); // Open result file with default application Process.Start(resFile); } Console.WriteLine(); Console.WriteLine("Press any key to continue..."); Console.ReadLine(); } /// <summary> /// Parse Json to Foldable Structure /// </summary> static FoldableStructure ParseJsonToFoldableStructure(string jsonData) { // Get Object data from input file JObject jsonObj = JObject.Parse(jsonData); var oRet = new FoldableStructure(); oRet.Part1 = Convert.ToString(jsonObj["fields"]["part1"]["value"]); oRet.Part2 = Convert.ToString(jsonObj["fields"]["part2"]["value"]); oRet.Part3 = Convert.ToString(jsonObj["fields"]["part3"]["value"]); return oRet; } } class FoldableStructure { public string Part1 { get; set; } public string Part2 { get; set; } public string Part3 { get; set; } } }
SampleFoldable.yml:
templateName: Untitled document kind
templateVersion: 4
templatePriority: 0
detectionRules:
keywords: []
objects:
- name: Part1
objectType: field
fieldProperties:
fieldType: rectangle
rectangle:
- 7.5
- 33.75
- 244.5
- 353.25
pageIndex: 0
- name: Part2
objectType: field
fieldProperties:
fieldType: rectangle
rectangle:
- 273.75
- 201.75
- 247.5
- 198
pageIndex: 0
- name: Part3
objectType: field
fieldProperties:
fieldType: rectangle
rectangle:
- 537.75
- 27
- 246
- 268.5
pageIndex: 0