Skip to content

Commit 4237de6

Browse files
Refactor interfaces in com.itextpdf.kernel.pdf.tagutils package
Replaced IAccessibleElement+AccessibilityProperties with AccessibilityProperties abstract class; Old AccessibilityProperties class is replaced with DefaultAccessibilityProperties implementation of abstract class; Changed most of the API that concerns tag roles in order to make it work with java strings; Introduced separate StandardRoles class for possible role constants; Introduced PdfStructureAttributes wrapper for structure attributes. DEVSIX-1236
1 parent 50988de commit 4237de6

File tree

66 files changed

+1593
-1163
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+1593
-1163
lines changed

forms/src/main/java/com/itextpdf/forms/PdfAcroForm.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ This file is part of the iText (R) project.
5252
import com.itextpdf.kernel.pdf.PdfBoolean;
5353
import com.itextpdf.kernel.pdf.PdfDictionary;
5454
import com.itextpdf.kernel.pdf.PdfDocument;
55-
import com.itextpdf.kernel.pdf.PdfIndirectReference;
5655
import com.itextpdf.kernel.pdf.PdfName;
5756
import com.itextpdf.kernel.pdf.PdfNumber;
5857
import com.itextpdf.kernel.pdf.PdfObject;
@@ -64,6 +63,7 @@ This file is part of the iText (R) project.
6463
import com.itextpdf.kernel.pdf.VersionConforming;
6564
import com.itextpdf.kernel.pdf.annot.PdfAnnotation;
6665
import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
66+
import com.itextpdf.kernel.pdf.tagging.StandardRoles;
6767
import com.itextpdf.kernel.pdf.tagutils.TagReference;
6868
import com.itextpdf.kernel.pdf.tagutils.TagTreePointer;
6969
import com.itextpdf.kernel.pdf.xobject.PdfFormXObject;
@@ -957,7 +957,7 @@ private void addWidgetAnnotationToPage(PdfPage page, PdfAnnotation annot) {
957957
if (tagged) {
958958
tagPointer = page.getDocument().getTagStructureContext().getAutoTaggingPointer();
959959
//TODO attributes?
960-
tagPointer.addTag(PdfName.Form);
960+
tagPointer.addTag(StandardRoles.FORM);
961961
}
962962

963963
page.addAnnotation(annot);

forms/src/test/java/com/itextpdf/forms/FormFieldsTaggingTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ This file is part of the iText (R) project.
4646
import com.itextpdf.forms.fields.PdfFormField;
4747
import com.itextpdf.kernel.geom.Rectangle;
4848
import com.itextpdf.kernel.pdf.PdfDocument;
49-
import com.itextpdf.kernel.pdf.PdfName;
5049
import com.itextpdf.kernel.pdf.PdfReader;
5150
import com.itextpdf.kernel.pdf.PdfWriter;
51+
import com.itextpdf.kernel.pdf.tagging.StandardRoles;
5252
import com.itextpdf.kernel.pdf.tagutils.TagTreePointer;
5353
import com.itextpdf.kernel.utils.CompareTool;
5454
import com.itextpdf.test.ExtendedITextTest;
@@ -219,7 +219,7 @@ public void formFieldTaggingTest07() throws IOException, InterruptedException, P
219219
PdfButtonFormField pushButton = PdfFormField.createPushButton(pdfDoc, new Rectangle(36, 650, 40, 20), "push", "Capcha");
220220

221221
TagTreePointer tagPointer = pdfDoc.getTagStructureContext().getAutoTaggingPointer();
222-
tagPointer.moveToKid(PdfName.Div);
222+
tagPointer.moveToKid(StandardRoles.DIV);
223223
acroForm.addField(pushButton);
224224

225225
pdfDoc.close();

kernel/src/main/java/com/itextpdf/kernel/pdf/PdfName.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -550,6 +550,7 @@ public class PdfName extends PdfPrimitiveObject implements Comparable<PdfName> {
550550
public static final PdfName Note = createDirectName("Note");
551551
public static final PdfName NotForPublicRelease = createDirectName("NotForPublicRelease");
552552
public static final PdfName NS = createDirectName("NS");
553+
public static final PdfName NSO = createDirectName("NSO");
553554
public static final PdfName NumCopies = createDirectName("NumCopies");
554555
public static final PdfName Nums = createDirectName("Nums");
555556
public static final PdfName O = createDirectName("O");

kernel/src/main/java/com/itextpdf/kernel/pdf/PdfOutline.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ This file is part of the iText (R) project.
5151
import java.io.Serializable;
5252
import java.util.ArrayList;
5353
import java.util.List;
54-
import java.util.Map;
5554

5655
/**
5756
* Document outline object
@@ -212,7 +211,7 @@ public void addDestination(PdfDestination destination) {
212211
public void addAction(PdfAction action) {
213212
content.put(PdfName.A, action.getPdfObject());
214213
}
215-
214+
216215
/**
217216
* Defines if the outline needs to be closed or not.
218217
* By default, outlines are open.

kernel/src/main/java/com/itextpdf/kernel/pdf/PdfPage.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ This file is part of the iText (R) project.
5454
import com.itextpdf.kernel.pdf.annot.PdfLinkAnnotation;
5555
import com.itextpdf.kernel.pdf.filespec.PdfFileSpec;
5656
import com.itextpdf.kernel.pdf.tagging.PdfStructTreeRoot;
57+
import com.itextpdf.kernel.pdf.tagging.StandardRoles;
5758
import com.itextpdf.kernel.pdf.tagutils.TagTreePointer;
5859
import com.itextpdf.kernel.pdf.xobject.PdfFormXObject;
5960
import com.itextpdf.kernel.pdf.xobject.PdfImageXObject;
@@ -452,8 +453,8 @@ public PdfDocument getDocument() {
452453
* If the page belongs to the document which is tagged, page flushing also triggers flushing of the tags,
453454
* which are considered to belong to the page. The logic that defines if the given tag (structure element) belongs
454455
* to the page is the following: if all the marked content references (dictionary or number references), that are the
455-
* descenders of the given structure element, belong to the current page - the tag is considered
456-
* to belong to the page. If tag has descenders from several pages - it is flushed, if all other pages except the
456+
* descendants of the given structure element, belong to the current page - the tag is considered
457+
* to belong to the page. If tag has descendants from several pages - it is flushed, if all other pages except the
457458
* current one are flushed.
458459
*/
459460
@Override
@@ -854,8 +855,8 @@ public PdfPage removeAnnotation(PdfAnnotation annotation) {
854855
if (getDocument().isTagged()) {
855856
TagTreePointer tagPointer = getDocument().getTagStructureContext().removeAnnotationTag(annotation);
856857
if (tagPointer != null) {
857-
boolean standardAnnotTagRole = tagPointer.getRole().equals(PdfName.Annot)
858-
|| tagPointer.getRole().equals(PdfName.Form);
858+
boolean standardAnnotTagRole = tagPointer.getRole().equals(StandardRoles.ANNOT)
859+
|| tagPointer.getRole().equals(StandardRoles.FORM);
859860
if (tagPointer.getKidsRoles().size() == 0 && standardAnnotTagRole) {
860861
tagPointer.removeTag();
861862
}

kernel/src/main/java/com/itextpdf/kernel/pdf/PdfResources.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ This file is part of the iText (R) project.
4343
*/
4444
package com.itextpdf.kernel.pdf;
4545

46-
import com.itextpdf.kernel.PdfException;
4746
import com.itextpdf.kernel.font.PdfFont;
4847
import com.itextpdf.kernel.pdf.colorspace.PdfColorSpace;
4948
import com.itextpdf.kernel.pdf.colorspace.PdfPattern;
@@ -66,7 +65,7 @@ This file is part of the iText (R) project.
6665
public class PdfResources extends PdfObjectWrapper<PdfDictionary> {
6766

6867
private static final long serialVersionUID = 7160318458835945391L;
69-
68+
7069
private static final String F = "F";
7170
private static final String Im = "Im";
7271
private static final String Fm = "Fm";

kernel/src/main/java/com/itextpdf/kernel/pdf/annot/PdfAnnotation.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ This file is part of the iText (R) project.
5252
import com.itextpdf.kernel.geom.Rectangle;
5353
import com.itextpdf.kernel.pdf.PdfAnnotationBorder;
5454
import com.itextpdf.kernel.pdf.PdfArray;
55-
import com.itextpdf.kernel.pdf.PdfBoolean;
5655
import com.itextpdf.kernel.pdf.PdfDictionary;
5756
import com.itextpdf.kernel.pdf.PdfDocument;
5857
import com.itextpdf.kernel.pdf.PdfIndirectReference;
@@ -62,7 +61,6 @@ This file is part of the iText (R) project.
6261
import com.itextpdf.kernel.pdf.PdfObjectWrapper;
6362
import com.itextpdf.kernel.pdf.PdfPage;
6463
import com.itextpdf.kernel.pdf.PdfString;
65-
import com.itextpdf.kernel.pdf.action.PdfAction;
6664
import com.itextpdf.kernel.pdf.filespec.PdfFileSpec;
6765
import com.itextpdf.kernel.pdf.layer.IPdfOCG;
6866
import org.slf4j.Logger;

kernel/src/main/java/com/itextpdf/kernel/pdf/annot/PdfLinkAnnotation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public class PdfLinkAnnotation extends PdfAnnotation {
5959
private static final long serialVersionUID = 5795613340575331536L;
6060

6161
private static final Logger logger = LoggerFactory.getLogger(PdfLinkAnnotation.class);
62-
62+
6363
/**
6464
* Highlight modes.
6565
*/

kernel/src/main/java/com/itextpdf/kernel/pdf/annot/PdfMarkupAnnotation.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,18 +44,12 @@ This file is part of the iText (R) project.
4444
package com.itextpdf.kernel.pdf.annot;
4545

4646
import com.itextpdf.io.LogMessageConstant;
47-
import com.itextpdf.kernel.colors.Color;
48-
import com.itextpdf.kernel.colors.DeviceCmyk;
49-
import com.itextpdf.kernel.colors.DeviceGray;
50-
import com.itextpdf.kernel.colors.DeviceRgb;
5147
import com.itextpdf.kernel.geom.Rectangle;
52-
import com.itextpdf.kernel.pdf.PdfArray;
5348
import com.itextpdf.kernel.pdf.PdfDictionary;
5449
import com.itextpdf.kernel.pdf.PdfName;
5550
import com.itextpdf.kernel.pdf.PdfNumber;
5651
import com.itextpdf.kernel.pdf.PdfObject;
5752
import com.itextpdf.kernel.pdf.PdfString;
58-
import com.itextpdf.kernel.pdf.tagging.PdfMcrDictionary;
5953
import org.slf4j.Logger;
6054
import org.slf4j.LoggerFactory;
6155

kernel/src/main/java/com/itextpdf/kernel/pdf/canvas/CanvasTag.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ public PdfDictionary getProperties() {
200200
public String getActualText() {
201201
return getPropertyAsString(PdfName.ActualText);
202202
}
203-
203+
204204
public String getExpansionText() {
205205
return getPropertyAsString(PdfName.E);
206206
}
@@ -213,7 +213,7 @@ private String getPropertyAsString(PdfName name) {
213213
}
214214
return result;
215215
}
216-
216+
217217
private void ensurePropertiesInit() {
218218
if (properties == null) {
219219
properties = new PdfDictionary();

0 commit comments

Comments
 (0)