diff options
author | Simon Steiner <ssteiner@apache.org> | 2020-01-29 10:15:14 +0000 |
---|---|---|
committer | Simon Steiner <ssteiner@apache.org> | 2020-01-29 10:15:14 +0000 |
commit | ed7ad907820b7221402d14bcea49646f6fa62384 (patch) | |
tree | a9632273b31b0a6a7491267a6843a2827fd5ae56 | |
parent | cc76e1af4c4c2ae9dae789dd09d210696ebab97d (diff) | |
download | xmlgraphics-fop-ed7ad907820b7221402d14bcea49646f6fa62384.tar.gz xmlgraphics-fop-ed7ad907820b7221402d14bcea49646f6fa62384.zip |
FOP-2908: Repeated image in header not shown in structure tree
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1873293 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | fop-core/src/main/java/org/apache/fop/render/pdf/PDFLogicalStructureHandler.java | 7 | ||||
-rw-r--r-- | fop-core/src/test/java/org/apache/fop/render/pdf/PDFStructureTreeBuilderTestCase.java | 60 |
2 files changed, 65 insertions, 2 deletions
diff --git a/fop-core/src/main/java/org/apache/fop/render/pdf/PDFLogicalStructureHandler.java b/fop-core/src/main/java/org/apache/fop/render/pdf/PDFLogicalStructureHandler.java index abaffad60..318892ba3 100644 --- a/fop-core/src/main/java/org/apache/fop/render/pdf/PDFLogicalStructureHandler.java +++ b/fop-core/src/main/java/org/apache/fop/render/pdf/PDFLogicalStructureHandler.java @@ -183,8 +183,11 @@ public class PDFLogicalStructureHandler { return ARTIFACT; } else { MarkedContentInfo mci = addToParentTree(structElem); - mci.parent.setMCIDKid(mci.mcid); - mci.parent.setPage(this.currentPage); + PDFDictionary contentItem = new PDFDictionary(); + contentItem.put("Type", MCR); + contentItem.put("Pg", this.currentPage); + contentItem.put("MCID", mci.mcid); + mci.parent.addKid(contentItem); return mci; } } diff --git a/fop-core/src/test/java/org/apache/fop/render/pdf/PDFStructureTreeBuilderTestCase.java b/fop-core/src/test/java/org/apache/fop/render/pdf/PDFStructureTreeBuilderTestCase.java new file mode 100644 index 000000000..305f6c62a --- /dev/null +++ b/fop-core/src/test/java/org/apache/fop/render/pdf/PDFStructureTreeBuilderTestCase.java @@ -0,0 +1,60 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* $Id$ */ + +package org.apache.fop.render.pdf; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; + +import org.junit.Before; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +import org.apache.fop.pdf.PDFDocument; +import org.apache.fop.pdf.PDFFactory; +import org.apache.fop.pdf.PDFResources; +import org.apache.fop.pdf.PDFStructElem; +import org.apache.fop.pdf.StandardStructureTypes; + +public class PDFStructureTreeBuilderTestCase { + private PDFFactory pdfFactory; + + @Test + public void testAddImageContentItem() throws IOException { + PDFStructElem structElem = new PDFStructElem(null, StandardStructureTypes.Illustration.FIGURE); + structElem.setDocument(pdfFactory.getDocument()); + PDFLogicalStructureHandler logicalStructureHandler = new PDFLogicalStructureHandler(null); + logicalStructureHandler.startPage(pdfFactory.makePage(new PDFResources(pdfFactory.getDocument()), 0, 0)); + logicalStructureHandler.addImageContentItem(structElem); + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + structElem.output(bos); + assertEquals(bos.toString(), "<< /S /Figure /K [<<\n" + + " /Type /MCR\n" + + " /Pg 1 0 R\n" + + " /MCID 0\n" + + ">>] >>"); + } + + @Before + public void setUp() { + PDFDocument doc = new PDFDocument(""); + pdfFactory = new PDFFactory(doc); + } +} |