From 967a5b18472f2f13db29dcff59b06aaedcc52b76 Mon Sep 17 00:00:00 2001 From: Simon Steiner Date: Thu, 21 Aug 2014 14:42:22 +0000 Subject: [PATCH] FOP-2353: PDF-A preflight warnings git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1619415 13f79535-47bb-0310-9956-ffa450edef68 --- lib/xmlgraphics-commons-svn-trunk.jar | Bin 631775 -> 631898 bytes .../fop/render/pdf/PDFRenderingUtil.java | 8 +++++++- .../render/pdf/PDFStructureTreeBuilder.java | 16 ++++++++++++++-- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/lib/xmlgraphics-commons-svn-trunk.jar b/lib/xmlgraphics-commons-svn-trunk.jar index 9eae34388498a6857f72d427b887fbe87e4e9ca4..7953685e51609d7ee91dfc13b74110889b102142 100644 GIT binary patch delta 23112 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 K4;o-wLhygWapyq* diff --git a/src/java/org/apache/fop/render/pdf/PDFRenderingUtil.java b/src/java/org/apache/fop/render/pdf/PDFRenderingUtil.java index ef4824c6a..111cca6b2 100644 --- a/src/java/org/apache/fop/render/pdf/PDFRenderingUtil.java +++ b/src/java/org/apache/fop/render/pdf/PDFRenderingUtil.java @@ -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.LogFactory; 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 exclude = new ArrayList(); + 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()); diff --git a/src/java/org/apache/fop/render/pdf/PDFStructureTreeBuilder.java b/src/java/org/apache/fop/render/pdf/PDFStructureTreeBuilder.java index 985974b80..bd4be2a61 100644 --- a/src/java/org/apache/fop/render/pdf/PDFStructureTreeBuilder.java +++ b/src/java/org/apache/fop/render/pdf/PDFStructureTreeBuilder.java @@ -358,7 +358,10 @@ class PDFStructureTreeBuilder implements StructureTreeEventHandler { } 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 StructureTreeEventHandler { } 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) { -- 2.39.5