aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSimon Steiner <ssteiner@apache.org>2015-07-28 14:46:09 +0000
committerSimon Steiner <ssteiner@apache.org>2015-07-28 14:46:09 +0000
commit61a8216891526346dc7370d4b194107ba383bb61 (patch)
tree69308e11f428723ffc7bb8c284fac02415fc8f7a /src
parentb7446dd31c308015a1414d375beb221d566169e9 (diff)
downloadxmlgraphics-fop-61a8216891526346dc7370d4b194107ba383bb61.tar.gz
xmlgraphics-fop-61a8216891526346dc7370d4b194107ba383bb61.zip
FOP-2499: PDF/UA warnings for nested elements
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1693102 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src')
-rw-r--r--src/java/org/apache/fop/pdf/PDFStructElem.java25
1 files changed, 22 insertions, 3 deletions
diff --git a/src/java/org/apache/fop/pdf/PDFStructElem.java b/src/java/org/apache/fop/pdf/PDFStructElem.java
index ac755bd4b..19864f6e3 100644
--- a/src/java/org/apache/fop/pdf/PDFStructElem.java
+++ b/src/java/org/apache/fop/pdf/PDFStructElem.java
@@ -21,7 +21,9 @@ package org.apache.fop.pdf;
import java.io.IOException;
import java.io.OutputStream;
+
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.Locale;
@@ -244,13 +246,30 @@ public class PDFStructElem extends StructureHierarchyMember
}
public int output(OutputStream stream) throws IOException {
- if (getDocument().getProfile().getPDFUAMode().isEnabled()
- && entries.containsKey("Alt") && "".equals(get("Alt"))) {
- put("Alt", "No alternate text specified");
+ if (getDocument().getProfile().getPDFUAMode().isEnabled()) {
+ if (entries.containsKey("Alt") && "".equals(get("Alt"))) {
+ put("Alt", "No alternate text specified");
+ } else if (kids != null) {
+ for (PDFObject kid : kids) {
+ if (kid instanceof PDFStructElem
+ && !(kid instanceof Placeholder)
+ && structureType.toString().equals("P")
+ && isBSLE(((PDFStructElem) kid).getStructureType().toString())) {
+ structureType = StandardStructureTypes.Grouping.DIV;
+ put("S", StandardStructureTypes.Grouping.DIV.getName());
+ break;
+ }
+ }
+ }
}
return super.output(stream);
}
+ private boolean isBSLE(String type) {
+ String[] blseValues = {"Table", "L", "P"};
+ return Arrays.asList(blseValues).contains(type);
+ }
+
/**
* Class representing a placeholder for a PDF Structure Element.
*/