@@ -42,16 +42,26 @@ This file is part of the iText (R) project.
42
42
*/
43
43
package com .itextpdf .layout ;
44
44
45
+ import com .itextpdf .io .font .PdfEncodings ;
46
+ import com .itextpdf .io .image .ImageDataFactory ;
45
47
import com .itextpdf .io .source .ByteArrayOutputStream ;
48
+ import com .itextpdf .kernel .font .PdfFont ;
49
+ import com .itextpdf .kernel .font .PdfFontFactory ;
46
50
import com .itextpdf .kernel .pdf .PdfDocument ;
51
+ import com .itextpdf .kernel .pdf .PdfDocumentInfo ;
52
+ import com .itextpdf .kernel .pdf .PdfViewerPreferences ;
53
+ import com .itextpdf .kernel .pdf .PdfString ;
47
54
import com .itextpdf .kernel .pdf .PdfWriter ;
55
+ import com .itextpdf .kernel .pdf .WriterProperties ;
48
56
import com .itextpdf .kernel .utils .CompareTool ;
49
57
import com .itextpdf .kernel .xmp .XMPConst ;
50
58
import com .itextpdf .kernel .xmp .XMPException ;
51
59
import com .itextpdf .kernel .xmp .XMPMeta ;
52
60
import com .itextpdf .kernel .xmp .XMPMetaFactory ;
53
61
import com .itextpdf .kernel .xmp .options .PropertyOptions ;
62
+ import com .itextpdf .layout .element .Image ;
54
63
import com .itextpdf .layout .element .Paragraph ;
64
+ import com .itextpdf .layout .element .Text ;
55
65
import com .itextpdf .test .ExtendedITextTest ;
56
66
import com .itextpdf .test .annotations .type .IntegrationTest ;
57
67
import org .junit .Assert ;
@@ -66,6 +76,9 @@ public class XMPWriterTest extends ExtendedITextTest {
66
76
67
77
public static final String sourceFolder = "./src/test/resources/com/itextpdf/layout/XMPWriterTest/" ;
68
78
public static final String destinationFolder = "./target/test/com/itextpdf/layout/XMPWriterTest/" ;
79
+ public static final String DOG = "./src/test/resources/com/itextpdf/layout/XMPWriterTest/dog.bmp" ;
80
+ public static final String FONT = "./src/test/resources/com/itextpdf/layout/fonts/FreeSans.ttf" ;
81
+ public static final String FOX = "./src/test/resources/com/itextpdf/layout/XMPWriterTest/fox.bmp" ;
69
82
70
83
@ BeforeClass
71
84
public static void beforeClass () {
@@ -97,4 +110,51 @@ public void createPdfTest() throws IOException, XMPException {
97
110
Assert .assertNull (ct .compareXmp (destinationFolder + fileName , sourceFolder + "cmp_" + fileName , true ));
98
111
}
99
112
113
+ @ Test
114
+ public void addUAXMPMetaDataNotTaggedTest () throws IOException {
115
+ String fileName = "addUAXMPMetaDataNotTaggedTest.pdf" ;
116
+ PdfDocument pdf = new PdfDocument (new PdfWriter (destinationFolder + fileName , new WriterProperties ().addUAXmpMetadata ()));
117
+ manipulatePdf (pdf , false );
118
+ Assert .assertNull (new CompareTool ().compareXmp (destinationFolder + fileName , sourceFolder + "cmp_" + fileName , true ));
119
+ }
120
+
121
+ @ Test
122
+ public void addUAXMPMetaDataTaggedTest () throws IOException , InterruptedException {
123
+ String fileName = "addUAXMPMetaDataTaggedTest.pdf" ;
124
+ PdfDocument pdf = new PdfDocument (new PdfWriter (destinationFolder + fileName , new WriterProperties ().addUAXmpMetadata ()));
125
+ manipulatePdf (pdf , true );
126
+ Assert .assertNull (new CompareTool ().compareXmp (destinationFolder + fileName , sourceFolder + "cmp_" + fileName , true ));
127
+ }
128
+
129
+ @ Test
130
+ public void doNotAddUAXMPMetaDataTaggedTest () throws IOException {
131
+ String fileName = "doNotAddUAXMPMetaDataTaggedTest.pdf" ;
132
+ PdfDocument pdf = new PdfDocument (new PdfWriter (destinationFolder + fileName , new WriterProperties ().addXmpMetadata ()));
133
+ manipulatePdf (pdf , true );
134
+ Assert .assertNull (new CompareTool ().compareXmp (destinationFolder + fileName , sourceFolder + "cmp_" + fileName , true ));
135
+ }
136
+
137
+ private void manipulatePdf (PdfDocument pdfDocument , boolean setTagged ) throws IOException {
138
+ Document document = new Document (pdfDocument );
139
+ if (setTagged )
140
+ pdfDocument .setTagged ();
141
+ pdfDocument .getCatalog ().setLang (new PdfString ("en-US" ));
142
+ pdfDocument .getCatalog ().setViewerPreferences (
143
+ new PdfViewerPreferences ().setDisplayDocTitle (true ));
144
+ PdfDocumentInfo info = pdfDocument .getDocumentInfo ();
145
+ info .setTitle ("iText7 PDF/UA test" );
146
+ PdfFont font = PdfFontFactory .createFont (FONT , PdfEncodings .WINANSI , true );
147
+ Paragraph p = new Paragraph ();
148
+ p .setFont (font );
149
+ p .add (new Text ("The quick brown " ));
150
+ Image foxImage = new Image (ImageDataFactory .create (FOX ));
151
+ foxImage .getAccessibilityProperties ().setAlternateDescription ("Fox" );
152
+ p .add (foxImage );
153
+ p .add (" jumps over the lazy " );
154
+ Image dogImage = new Image (ImageDataFactory .create (DOG ));
155
+ dogImage .getAccessibilityProperties ().setAlternateDescription ("Dog" );
156
+ p .add (dogImage );
157
+ document .add (p );
158
+ document .close ();
159
+ }
100
160
}
0 commit comments