Skip to content

Commit 0784d38

Browse files
author
Dmitry Radchuk
committed
Add CMYK Jpeg tests
DEVSIX-9279 Autoported commit. Original commit hash: [7530d2d] Manual files: pdfocr-onnxtr/src/test/java/com/itextpdf/pdfocr/onnxtr/OnnxTRCmykIntegrationTest.java pdfocr-onnxtr/src/test/resources/com/itextpdf/pdfocr/OnnxTRCmykIntegrationTest/cmp_rainbowAdobeCmykTest.txt pdfocr-onnxtr/src/test/resources/com/itextpdf/pdfocr/OnnxTRCmykIntegrationTest/cmp_rainbowCmykNoProfileTest.txt pdfocr-onnxtr/src/test/resources/com/itextpdf/pdfocr/OnnxTRCmykIntegrationTest/cmp_rainbowInvertedCmykTest.txt sharpenConfiguration.xml Add CMYK Jpeg tests DEVSIX-9279
1 parent b287d21 commit 0784d38

File tree

8 files changed

+198
-1
lines changed

8 files changed

+198
-1
lines changed
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
using System;
2+
using System.IO;
3+
using iText.Commons.Utils;
4+
using iText.Kernel.Colors;
5+
using iText.Kernel.Pdf;
6+
using iText.Pdfocr.Onnxtr.Detection;
7+
using iText.Pdfocr.Onnxtr.Orientation;
8+
using iText.Pdfocr.Onnxtr.Recognition;
9+
using iText.Test;
10+
11+
namespace iText.Pdfocr.Onnxtr {
12+
[NUnit.Framework.Category("IntegrationTest")]
13+
public class OnnxTRCmykIntegrationTest : ExtendedITextTest {
14+
private static readonly String TEST_DIRECTORY = iText.Test.TestUtil.GetParentProjectDirectory(NUnit.Framework.TestContext
15+
.CurrentContext.TestDirectory) + "/resources/itext/pdfocr/OnnxTRCmykIntegrationTest/";
16+
17+
private static readonly String TEST_IMAGE_DIRECTORY = iText.Test.TestUtil.GetParentProjectDirectory(NUnit.Framework.TestContext
18+
.CurrentContext.TestDirectory) + "/resources/itext/pdfocr/images/";
19+
20+
private static readonly String TARGET_DIRECTORY = NUnit.Framework.TestContext.CurrentContext.TestDirectory
21+
+ "/test/resources/itext/pdfocr/OnnxTRCmykIntegrationTest/";
22+
23+
private static readonly String FAST = iText.Test.TestUtil.GetParentProjectDirectory(NUnit.Framework.TestContext
24+
.CurrentContext.TestDirectory) + "/resources/itext/pdfocr/models/rep_fast_tiny-28867779.onnx";
25+
26+
private static readonly String CRNNVGG16 = iText.Test.TestUtil.GetParentProjectDirectory(NUnit.Framework.TestContext
27+
.CurrentContext.TestDirectory) + "/resources/itext/pdfocr/models/crnn_vgg16_bn-662979cc.onnx";
28+
29+
private static readonly String MOBILENETV3 = iText.Test.TestUtil.GetParentProjectDirectory(NUnit.Framework.TestContext
30+
.CurrentContext.TestDirectory) + "/resources/itext/pdfocr/models/mobilenet_v3_small_crop_orientation-5620cf7e.onnx";
31+
32+
private static OnnxTrOcrEngine OCR_ENGINE;
33+
34+
[NUnit.Framework.OneTimeSetUp]
35+
public static void BeforeClass() {
36+
CreateOrClearDestinationFolder(TARGET_DIRECTORY);
37+
IDetectionPredictor detectionPredictor = OnnxDetectionPredictor.Fast(FAST);
38+
IRecognitionPredictor recognitionPredictor = OnnxRecognitionPredictor.CrnnVgg16(CRNNVGG16);
39+
IOrientationPredictor orientationPredictor = OnnxOrientationPredictor.MobileNetV3(MOBILENETV3);
40+
OCR_ENGINE = new OnnxTrOcrEngine(detectionPredictor, orientationPredictor, recognitionPredictor);
41+
}
42+
43+
[NUnit.Framework.OneTimeTearDown]
44+
public static void AfterClass() {
45+
OCR_ENGINE.Close();
46+
}
47+
48+
[NUnit.Framework.Test]
49+
public virtual void RainbowInvertedCmykTest() {
50+
String src = TEST_IMAGE_DIRECTORY + "rainbow_inverted_cmyk.jpg";
51+
String dest = TARGET_DIRECTORY + "rainbowInvertedCmykTest.pdf";
52+
String cmpTxt = TEST_DIRECTORY + "cmp_rainbowInvertedCmykTest.txt";
53+
DoOcrAndCreatePdf(src, dest, CreatorProperties("Text1", DeviceCmyk.MAGENTA));
54+
using (PdfDocument pdfDocument = new PdfDocument(new PdfReader(dest))) {
55+
ExtractionStrategy extractionStrategy = OnnxTestUtils.ExtractTextFromLayer(pdfDocument, 1, "Text1");
56+
NUnit.Framework.Assert.AreEqual(DeviceCmyk.MAGENTA, extractionStrategy.GetFillColor());
57+
NUnit.Framework.Assert.AreEqual(GetCmpText(cmpTxt), extractionStrategy.GetResultantText());
58+
}
59+
}
60+
61+
[NUnit.Framework.Test]
62+
public virtual void RainbowAdobeCmykTest() {
63+
String src = TEST_IMAGE_DIRECTORY + "rainbow_adobe_cmyk.jpg";
64+
String dest = TARGET_DIRECTORY + "rainbowAdobeCmykTest.pdf";
65+
String cmpTxt = TEST_DIRECTORY + "cmp_rainbowAdobeCmykTest.txt";
66+
DoOcrAndCreatePdf(src, dest, CreatorProperties("Text1", DeviceCmyk.MAGENTA));
67+
using (PdfDocument pdfDocument = new PdfDocument(new PdfReader(dest))) {
68+
ExtractionStrategy extractionStrategy = OnnxTestUtils.ExtractTextFromLayer(pdfDocument, 1, "Text1");
69+
NUnit.Framework.Assert.AreEqual(DeviceCmyk.MAGENTA, extractionStrategy.GetFillColor());
70+
NUnit.Framework.Assert.AreEqual(GetCmpText(cmpTxt), extractionStrategy.GetResultantText());
71+
}
72+
}
73+
74+
[NUnit.Framework.Test]
75+
public virtual void RainbowCmykNoProfileTest() {
76+
String src = TEST_IMAGE_DIRECTORY + "rainbow_cmyk_inverted_no_profile.jpg";
77+
String dest = TARGET_DIRECTORY + "rainbowCmykNoProfileTest.pdf";
78+
String cmpTxt = TEST_DIRECTORY + "cmp_rainbowCmykNoProfileTest.txt";
79+
DoOcrAndCreatePdf(src, dest, CreatorProperties("Text1", DeviceCmyk.MAGENTA));
80+
using (PdfDocument pdfDocument = new PdfDocument(new PdfReader(dest))) {
81+
ExtractionStrategy extractionStrategy = OnnxTestUtils.ExtractTextFromLayer(pdfDocument, 1, "Text1");
82+
NUnit.Framework.Assert.AreEqual(DeviceCmyk.MAGENTA, extractionStrategy.GetFillColor());
83+
NUnit.Framework.Assert.AreEqual(GetCmpText(cmpTxt), extractionStrategy.GetResultantText());
84+
}
85+
}
86+
87+
private OcrPdfCreatorProperties CreatorProperties(String layerName, Color color) {
88+
OcrPdfCreatorProperties ocrPdfCreatorProperties = new OcrPdfCreatorProperties();
89+
ocrPdfCreatorProperties.SetTextLayerName(layerName);
90+
ocrPdfCreatorProperties.SetTextColor(color);
91+
return ocrPdfCreatorProperties;
92+
}
93+
94+
private void DoOcrAndCreatePdf(String imagePath, String destPdfPath, OcrPdfCreatorProperties ocrPdfCreatorProperties
95+
) {
96+
OcrPdfCreator ocrPdfCreator = ocrPdfCreatorProperties != null ? new OcrPdfCreator(OCR_ENGINE, ocrPdfCreatorProperties
97+
) : new OcrPdfCreator(OCR_ENGINE);
98+
using (PdfWriter writer = new PdfWriter(destPdfPath)) {
99+
ocrPdfCreator.CreatePdf(JavaCollectionsUtil.SingletonList(new FileInfo(imagePath)), writer).Close();
100+
}
101+
}
102+
103+
private String GetCmpText(String txtPath) {
104+
int bytesCount = (int)new FileInfo(txtPath).Length;
105+
char[] array = new char[bytesCount];
106+
using (StreamReader stream = new StreamReader(iText.Commons.Utils.FileUtil.GetInputStreamForFile(System.IO.Path.Combine
107+
(txtPath)))) {
108+
stream.Read(array, 0, bytesCount);
109+
return new String(array);
110+
}
111+
}
112+
}
113+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
a
2+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
3+
et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
4+
aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
5+
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa
6+
qui officia deserunt mollit anim id est laborum.
7+
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium,
8+
totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta
9+
sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia
10+
consequuntur magni dolores eos ratione voluptatem sequi nesciunt. Neque porro quisquam est,
11+
qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi
12+
tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima
13+
veniam, quis nostrum exercitatationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea
14+
commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam
15+
nihil molestiae consequatur, vel illum qui dolorem eum fugiat volupt-as nulla pariatur?
16+
At vero eos et accusamus et justo odio dignissimos ducimus qui blanditiis praesentium voluptatum
17+
deleniti atque corrupti dolores et quas molestias excepturi sint occaecati cupiditate non
18+
provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga.
19+
Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est
20+
eligendi optio cumque nihil impedit minus id maxime placeat facere possimus, omnis
21+
voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis
22+
debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non
23+
recusandae. Itaque earum rerum hic tenetur sapiente delectus, ut aut reiciendis voluptatibus
24+
maiores alias consequatur aut perferendis doloribus asperiores repellat.
25+
ponb onb
26+
sonb
27+
onb
28+
Inb
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
in
2+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
3+
et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
4+
aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
5+
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa
6+
qui officia deserunt mollit anim id est laborum.
7+
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium,
8+
totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta
9+
sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, quia
10+
consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est,
11+
qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi
12+
tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima
13+
veniam, quis nostrum exercitatationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea
14+
commodi consequatur? Quis autem vel eum iure reprehenderit qui ea voluptate velit esse quam
15+
nihil molestiae consequatur, vel illum qui dolorem eum fugiat volupt-as nulla pariatur?
16+
At vero eos et accusamus et justo odio dignissimos ducimus qui blanditiis voluptatum
17+
deleniti atque corrupti dolores et quas molestias excepturi sint occaecati cupiditate non
18+
provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga.
19+
Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est
20+
eligendi cumque nihil impedit minus id maxime placeat facere possimus, omnis
21+
voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis
22+
debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non
23+
recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus
24+
maiores alias consequatur aut perferendis doloribus asperiores repellat.
25+
ponb onb opdo
26+
sonb
27+
unguaseeid
28+
onb
29+
pas
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
2+
et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
3+
aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
4+
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa
5+
qui officia deserunt mollit anim id est laborum.
6+
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium,
7+
totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta
8+
sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia
9+
consequuntur magni dolores eos ratione voluptatem sequi nesciunt. Neque porro quisquam est,
10+
qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi
11+
tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima
12+
veniam, quis nostrum exercitatationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea
13+
commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam
14+
nihil molestiae consequatur, vel illum qui dolorem eum fugiat volupt-as nulla pariatur?
15+
At vero eos et accusamus et justo odio dignissimos ducimus qui blanditiis praesentium voluptatum
16+
deleniti atque corrupti dolores et quas molestias excepturi sint occaecati cupiditate non
17+
provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga.
18+
Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est
19+
eligendi cumque nihil impedit minus id maxime placeat facere possimus, omnis
20+
voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis
21+
debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non
22+
recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus
23+
maiores alias consequatur aut perferendis doloribus asperiores repellat.
24+
ponb onb opdo
25+
sonb
26+
onb
27+
Inb
775 KB
Loading
344 KB
Loading
2.96 MB
Loading

port-hash

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
b7e3ff4295dff2bc192966ef7fb2b79d0ee97611
1+
db1e34fb159649041bb642153b00080f95280adc

0 commit comments

Comments
 (0)