diff options
author | Simon Steiner <ssteiner@apache.org> | 2015-07-28 14:46:09 +0000 |
---|---|---|
committer | Simon Steiner <ssteiner@apache.org> | 2015-07-28 14:46:09 +0000 |
commit | 61a8216891526346dc7370d4b194107ba383bb61 (patch) | |
tree | 69308e11f428723ffc7bb8c284fac02415fc8f7a /src | |
parent | b7446dd31c308015a1414d375beb221d566169e9 (diff) | |
download | xmlgraphics-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.java | 25 |
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. */ |