Skip to content

Commit 60d895d

Browse files
Added Tesseract demo (#18)
1 parent e01dceb commit 60d895d

18 files changed

+417
-44
lines changed

PdfProcessing/PdfProcessing.sln

Lines changed: 8 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio Version 16
4-
VisualStudioVersion = 16.0.29306.81
3+
# Visual Studio Version 17
4+
VisualStudioVersion = 17.12.35424.110 d17.12
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PdfViewerIntegration_WPF", "PdfViewerIntegration\PdfViewerIntegration_WPF.csproj", "{467F6224-4594-40A9-B5D1-54CB67EFD668}"
77
EndProject
@@ -27,6 +27,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddWatermark", "AddWatermar
2727
EndProject
2828
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ModifyBookmarks_WPF", "ModifyBookmarks\ModifyBookmarks_WPF.csproj", "{BD58EF11-6552-4279-A341-0E200480A201}"
2929
EndProject
30+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TesseractOcrProviderDemo", "TesseractOcrProviderDemo\TesseractOcrProviderDemo.csproj", "{4926B7C9-E2CD-4233-A3C7-B1486FFF6524}"
31+
EndProject
3032
Global
3133
GlobalSection(SolutionConfigurationPlatforms) = preSolution
3234
Debug|Any CPU = Debug|Any CPU
@@ -81,53 +83,15 @@ Global
8183
{BD58EF11-6552-4279-A341-0E200480A201}.Debug|Any CPU.Build.0 = Debug|Any CPU
8284
{BD58EF11-6552-4279-A341-0E200480A201}.Release|Any CPU.ActiveCfg = Release|Any CPU
8385
{BD58EF11-6552-4279-A341-0E200480A201}.Release|Any CPU.Build.0 = Release|Any CPU
86+
{4926B7C9-E2CD-4233-A3C7-B1486FFF6524}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
87+
{4926B7C9-E2CD-4233-A3C7-B1486FFF6524}.Debug|Any CPU.Build.0 = Debug|Any CPU
88+
{4926B7C9-E2CD-4233-A3C7-B1486FFF6524}.Release|Any CPU.ActiveCfg = Release|Any CPU
89+
{4926B7C9-E2CD-4233-A3C7-B1486FFF6524}.Release|Any CPU.Build.0 = Release|Any CPU
8490
EndGlobalSection
8591
GlobalSection(SolutionProperties) = preSolution
8692
HideSolutionNode = FALSE
8793
EndGlobalSection
8894
GlobalSection(ExtensibilityGlobals) = postSolution
8995
SolutionGuid = {8367CD01-3064-4D5D-A3B8-6E7CD36F5B8A}
9096
EndGlobalSection
91-
GlobalSection(TeamFoundationVersionControl) = preSolution
92-
SccNumberOfProjects = 13
93-
SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
94-
SccTeamFoundationServer = https://tfsemea.progress.com/defaultcollection
95-
SccLocalPath0 = .
96-
SccProjectUniqueName1 = PdfViewerIntegration\\PdfViewerIntegration_WPF.csproj
97-
SccProjectName1 = PdfViewerIntegration
98-
SccLocalPath1 = PdfViewerIntegration
99-
SccProjectUniqueName2 = ExportUIElement\\ExportUIElement_WPF.csproj
100-
SccProjectName2 = ExportUIElement
101-
SccLocalPath2 = ExportUIElement
102-
SccProjectUniqueName3 = ManipulatePages\\ManipulatePages.csproj
103-
SccProjectName3 = ManipulatePages
104-
SccLocalPath3 = ManipulatePages
105-
SccProjectUniqueName4 = PdfStreamWriterPerformance\\PdfStreamWriterPerformance.csproj
106-
SccProjectName4 = PdfStreamWriterPerformance
107-
SccLocalPath4 = PdfStreamWriterPerformance
108-
SccProjectUniqueName5 = CreateDocumentWithImages\\CreateDocumentWithImages.csproj
109-
SccProjectName5 = CreateDocumentWithImages
110-
SccLocalPath5 = CreateDocumentWithImages
111-
SccProjectUniqueName6 = GenerateDocument\\GenerateDocument.csproj
112-
SccProjectName6 = GenerateDocument
113-
SccLocalPath6 = GenerateDocument
114-
SccProjectUniqueName7 = CreateInteractiveForms\\CreateInteractiveForms.csproj
115-
SccProjectName7 = CreateInteractiveForms
116-
SccLocalPath7 = CreateInteractiveForms
117-
SccProjectUniqueName8 = ModifyForms\\ModifyFormValues.csproj
118-
SccProjectName8 = ModifyForms
119-
SccLocalPath8 = ModifyForms
120-
SccProjectUniqueName9 = CreatePdfUsingRadFixedDocumentEditor\\CreatePdfUsingRadFixedDocumentEditor.csproj
121-
SccProjectName9 = CreatePdfUsingRadFixedDocumentEditor
122-
SccLocalPath9 = CreatePdfUsingRadFixedDocumentEditor
123-
SccProjectUniqueName10 = DrawHeaderFooter\\DrawHeaderFooter.csproj
124-
SccProjectName10 = DrawHeaderFooter
125-
SccLocalPath10 = DrawHeaderFooter
126-
SccProjectUniqueName11 = AddWatermark\\AddWatermark.csproj
127-
SccProjectName11 = AddWatermark
128-
SccLocalPath11 = AddWatermark
129-
SccProjectUniqueName12 = ModifyBookmarks\\ModifyBookmarks_WPF.csproj
130-
SccProjectName12 = ModifyBookmarks
131-
SccLocalPath12 = ModifyBookmarks
132-
EndGlobalSection
13397
EndGlobal
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
{
2+
"Version": 1,
3+
"WorkspaceRootPath": "C:\\Users\\dyordano\\OneDrive - Progress Software Corporation\\MyProjects\\TesseractOcrProviderDemo\\",
4+
"Documents": [
5+
{
6+
"AbsoluteMoniker": "D:0:0:{4926B7C9-E2CD-4233-A3C7-B1486FFF6524}|TesseractOcrProviderDemo.csproj|c:\\users\\dyordano\\onedrive - progress software corporation\\myprojects\\tesseractocrproviderdemo\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
7+
"RelativeMoniker": "D:0:0:{4926B7C9-E2CD-4233-A3C7-B1486FFF6524}|TesseractOcrProviderDemo.csproj|solutionrelative:program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
8+
}
9+
],
10+
"DocumentGroupContainers": [
11+
{
12+
"Orientation": 0,
13+
"VerticalTabListWidth": 256,
14+
"DocumentGroups": [
15+
{
16+
"DockedWidth": 200,
17+
"SelectedChildIndex": 3,
18+
"Children": [
19+
{
20+
"$type": "Bookmark",
21+
"Name": "ST:131:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
22+
},
23+
{
24+
"$type": "Bookmark",
25+
"Name": "ST:130:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
26+
},
27+
{
28+
"$type": "Bookmark",
29+
"Name": "ST:129:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
30+
},
31+
{
32+
"$type": "Document",
33+
"DocumentIndex": 0,
34+
"Title": "Program.cs",
35+
"DocumentMoniker": "C:\\Users\\dyordano\\OneDrive - Progress Software Corporation\\MyProjects\\TesseractOcrProviderDemo\\Program.cs",
36+
"RelativeDocumentMoniker": "Program.cs",
37+
"ToolTip": "C:\\Users\\dyordano\\OneDrive - Progress Software Corporation\\MyProjects\\TesseractOcrProviderDemo\\Program.cs",
38+
"RelativeToolTip": "Program.cs",
39+
"ViewState": "AgIAABkAAAAAAAAAAAAgwBwAAAAAAAAAAAAAAA==",
40+
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
41+
"WhenOpened": "2025-01-24T15:25:54.946Z",
42+
"EditorCaption": ""
43+
}
44+
]
45+
}
46+
]
47+
}
48+
]
49+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
{
2+
"Version": 1,
3+
"WorkspaceRootPath": "C:\\Users\\dyordano\\OneDrive - Progress Software Corporation\\MyProjects\\TesseractOcrProviderDemo\\",
4+
"Documents": [
5+
{
6+
"AbsoluteMoniker": "D:0:0:{4926B7C9-E2CD-4233-A3C7-B1486FFF6524}|TesseractOcrProviderDemo.csproj|c:\\users\\dyordano\\onedrive - progress software corporation\\myprojects\\tesseractocrproviderdemo\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
7+
"RelativeMoniker": "D:0:0:{4926B7C9-E2CD-4233-A3C7-B1486FFF6524}|TesseractOcrProviderDemo.csproj|solutionrelative:program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
8+
}
9+
],
10+
"DocumentGroupContainers": [
11+
{
12+
"Orientation": 0,
13+
"VerticalTabListWidth": 256,
14+
"DocumentGroups": [
15+
{
16+
"DockedWidth": 200,
17+
"SelectedChildIndex": 3,
18+
"Children": [
19+
{
20+
"$type": "Bookmark",
21+
"Name": "ST:131:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
22+
},
23+
{
24+
"$type": "Bookmark",
25+
"Name": "ST:130:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
26+
},
27+
{
28+
"$type": "Bookmark",
29+
"Name": "ST:129:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
30+
},
31+
{
32+
"$type": "Document",
33+
"DocumentIndex": 0,
34+
"Title": "Program.cs",
35+
"DocumentMoniker": "C:\\Users\\dyordano\\OneDrive - Progress Software Corporation\\MyProjects\\TesseractOcrProviderDemo\\Program.cs",
36+
"RelativeDocumentMoniker": "Program.cs",
37+
"ToolTip": "C:\\Users\\dyordano\\OneDrive - Progress Software Corporation\\MyProjects\\TesseractOcrProviderDemo\\Program.cs",
38+
"RelativeToolTip": "Program.cs",
39+
"ViewState": "AgIAABkAAAAAAAAAAAAgwDoAAAAFAAAAAAAAAA==",
40+
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
41+
"WhenOpened": "2025-01-24T15:25:54.946Z",
42+
"EditorCaption": ""
43+
}
44+
]
45+
}
46+
]
47+
}
48+
]
49+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<configuration>
3+
<startup>
4+
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
5+
</startup>
6+
<runtime>
7+
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
8+
<dependentAssembly>
9+
<assemblyIdentity name="Telerik.Licensing.Runtime" publicKeyToken="98bb5b04e55c09ef" culture="neutral" />
10+
<bindingRedirect oldVersion="0.0.0.0-1.4.2.0" newVersion="1.4.2.0" />
11+
</dependentAssembly>
12+
</assemblyBinding>
13+
</runtime>
14+
</configuration>
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Diagnostics;
4+
using System.Drawing;
5+
using System.IO;
6+
using System.Linq;
7+
using System.Text;
8+
using System.Threading.Tasks;
9+
using Telerik.Windows.Documents.Fixed.FormatProviders.Ocr;
10+
using Telerik.Windows.Documents.Fixed.FormatProviders.Pdf;
11+
using Telerik.Windows.Documents.Fixed.Model;
12+
using Telerik.Windows.Documents.Ocr;
13+
using Telerik.Windows.Documents.TesseractOcr;
14+
15+
namespace TesseractOcrProviderDemo
16+
{
17+
internal class Program
18+
{
19+
static void Main(string[] args)
20+
{
21+
// Requirement for Images in .NET Standard - https://docs.telerik.com/devtools/document-processing/libraries/radpdfprocessing/cross-platform/images
22+
//FixedExtensibilityManager.ImagePropertiesResolver = new ImagePropertiesResolver();
23+
24+
TesseractOcrProvider tesseractOcrProvider = new TesseractOcrProvider(".");
25+
tesseractOcrProvider.LanguageCodes = new List<string>() { "eng" };
26+
//tesseractOcrProvider.CorrectVerticalPosition = false; //Available only for .NET Standard
27+
tesseractOcrProvider.DataPath = AppDomain.CurrentDomain.BaseDirectory + @"..\..\";
28+
tesseractOcrProvider.ParseLevel = OcrParseLevel.Word;
29+
30+
string imagePath = AppDomain.CurrentDomain.BaseDirectory + @"..\..\images\image.png";
31+
32+
string imageText = tesseractOcrProvider.GetAllTextFromImage(File.ReadAllBytes(imagePath));
33+
Dictionary<Rectangle, string> imageTextAndTextDimentions = tesseractOcrProvider.GetTextFromImage(File.ReadAllBytes(imagePath));
34+
35+
OcrFormatProvider OcProvider = new OcrFormatProvider(tesseractOcrProvider);
36+
37+
RadFixedDocument document = new RadFixedDocument();
38+
39+
RadFixedPage page = new RadFixedPage();
40+
page = OcProvider.Import(new FileStream(imagePath, FileMode.Open), null);
41+
document.Pages.Add(page);
42+
43+
string outputPath = "output.pdf";
44+
File.Delete(outputPath);
45+
PdfFormatProvider pdfFormatProvider = new PdfFormatProvider();
46+
using (Stream output = File.OpenWrite(outputPath))
47+
{
48+
pdfFormatProvider.Export(document, output, TimeSpan.FromSeconds(10));
49+
}
50+
51+
var psi = new ProcessStartInfo()
52+
{
53+
FileName = outputPath,
54+
UseShellExecute = true
55+
};
56+
Process.Start(psi);
57+
58+
}
59+
}
60+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
using System.Reflection;
2+
using System.Runtime.CompilerServices;
3+
using System.Runtime.InteropServices;
4+
5+
// General Information about an assembly is controlled through the following
6+
// set of attributes. Change these attribute values to modify the information
7+
// associated with an assembly.
8+
[assembly: AssemblyTitle("TesseractOcrProviderDemo")]
9+
[assembly: AssemblyDescription("")]
10+
[assembly: AssemblyConfiguration("")]
11+
[assembly: AssemblyCompany("Progress")]
12+
[assembly: AssemblyProduct("TesseractOcrProviderDemo")]
13+
[assembly: AssemblyCopyright("Copyright © Progress 2025")]
14+
[assembly: AssemblyTrademark("")]
15+
[assembly: AssemblyCulture("")]
16+
17+
// Setting ComVisible to false makes the types in this assembly not visible
18+
// to COM components. If you need to access a type in this assembly from
19+
// COM, set the ComVisible attribute to true on that type.
20+
[assembly: ComVisible(false)]
21+
22+
// The following GUID is for the ID of the typelib if this project is exposed to COM
23+
[assembly: Guid("4926b7c9-e2cd-4233-a3c7-b1486fff6524")]
24+
25+
// Version information for an assembly consists of the following four values:
26+
//
27+
// Major Version
28+
// Minor Version
29+
// Build Number
30+
// Revision
31+
//
32+
[assembly: AssemblyVersion("1.0.0.0")]
33+
[assembly: AssemblyFileVersion("1.0.0.0")]

0 commit comments

Comments
 (0)