You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by ss...@apache.org on 2014/08/21 16:42:23 UTC

svn commit: r1619415 - in /xmlgraphics/fop/trunk: lib/xmlgraphics-commons-svn-trunk.jar src/java/org/apache/fop/render/pdf/PDFRenderingUtil.java src/java/org/apache/fop/render/pdf/PDFStructureTreeBuilder.java

Author: ssteiner
Date: Thu Aug 21 14:42:22 2014
New Revision: 1619415

URL: http://svn.apache.org/r1619415
Log:
FOP-2353: PDF-A preflight warnings

Modified:
    xmlgraphics/fop/trunk/lib/xmlgraphics-commons-svn-trunk.jar
    xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pdf/PDFRenderingUtil.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pdf/PDFStructureTreeBuilder.java

Modified: xmlgraphics/fop/trunk/lib/xmlgraphics-commons-svn-trunk.jar
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/lib/xmlgraphics-commons-svn-trunk.jar?rev=1619415&r1=1619414&r2=1619415&view=diff
==============================================================================
Binary files - no diff available.

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pdf/PDFRenderingUtil.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pdf/PDFRenderingUtil.java?rev=1619415&r1=1619414&r2=1619415&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pdf/PDFRenderingUtil.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pdf/PDFRenderingUtil.java Thu Aug 21 14:42:22 2014
@@ -26,6 +26,7 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import java.net.URI;
 import java.net.URISyntaxException;
+import java.util.ArrayList;
 import java.util.EnumMap;
 import java.util.List;
 import java.util.Map;
@@ -36,6 +37,7 @@ import org.apache.commons.logging.LogFac
 
 import org.apache.xmlgraphics.java2d.color.profile.ColorProfileUtil;
 import org.apache.xmlgraphics.xmp.Metadata;
+import org.apache.xmlgraphics.xmp.schemas.DublinCoreSchema;
 import org.apache.xmlgraphics.xmp.schemas.XMPBasicAdapter;
 import org.apache.xmlgraphics.xmp.schemas.XMPBasicSchema;
 
@@ -246,7 +248,11 @@ class PDFRenderingUtil {
         Metadata docXMP = metadata.getMetadata();
         Metadata fopXMP = PDFMetadata.createXMPFromPDFDocument(pdfDoc);
         //Merge FOP's own metadata into the one from the XSL-FO document
-        fopXMP.mergeInto(docXMP);
+        List<Class> exclude = new ArrayList<Class>();
+        if (pdfDoc.getProfile().getPDFAMode().isPart1()) {
+            exclude.add(DublinCoreSchema.class);
+        }
+        fopXMP.mergeInto(docXMP, exclude);
         XMPBasicAdapter xmpBasic = XMPBasicSchema.getAdapter(docXMP);
         //Metadata was changed so update metadata date
         xmpBasic.setMetadataDate(new java.util.Date());

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pdf/PDFStructureTreeBuilder.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pdf/PDFStructureTreeBuilder.java?rev=1619415&r1=1619414&r2=1619415&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pdf/PDFStructureTreeBuilder.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pdf/PDFStructureTreeBuilder.java Thu Aug 21 14:42:22 2014
@@ -358,7 +358,10 @@ class PDFStructureTreeBuilder implements
     }
 
     public StructureTreeElement startNode(String name, Attributes attributes, StructureTreeElement parent) {
-        assert parent == null || parent instanceof PDFStructElem;
+        if (!isPDFA1Safe(name)) {
+            return null;
+		}
+		assert parent == null || parent instanceof PDFStructElem;
         PDFStructElem parentElem = parent == null ? ancestors.getFirst() : (PDFStructElem) parent;
         PDFStructElem structElem = createStructureElement(name, parentElem, attributes,
                 pdfFactory, eventBroadcaster);
@@ -367,7 +370,16 @@ class PDFStructureTreeBuilder implements
     }
 
     public void endNode(String name) {
-        ancestors.removeFirst();
+        if (isPDFA1Safe(name)) {
+            ancestors.removeFirst();
+        }
+    }
+
+    private boolean isPDFA1Safe(String name) {
+        return !(pdfFactory.getDocument().getProfile().getPDFAMode().isPart1()
+                && (name.equals("table-body")
+                || name.equals("table-header")
+                || name.equals("table-footer")));
     }
 
     public StructureTreeElement startImageNode(String name, Attributes attributes, StructureTreeElement parent) {



---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org