Author: ssteiner
Date: Thu Jun 11 15:48:05 2015
New Revision: 1684929

URL: http://svn.apache.org/r1684929
Log:
FOP-2436: Merging of Tagged (Accessible) PDF

Added:
    
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/DocumentRootModifier.java
      - copied unchanged from r1684916, 
xmlgraphics/fop-pdf-images/branches/Temp_MergeTaggedPDF/src/java/org/apache/fop/render/pdf/pdfbox/DocumentRootModifier.java
    
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PageParentTreeFinder.java
      - copied unchanged from r1684916, 
xmlgraphics/fop-pdf-images/branches/Temp_MergeTaggedPDF/src/java/org/apache/fop/render/pdf/pdfbox/PageParentTreeFinder.java
    
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/StructureTreeMerger.java
      - copied unchanged from r1684916, 
xmlgraphics/fop-pdf-images/branches/Temp_MergeTaggedPDF/src/java/org/apache/fop/render/pdf/pdfbox/StructureTreeMerger.java
    
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/StructureTreeMergerUtil.java
      - copied unchanged from r1684916, 
xmlgraphics/fop-pdf-images/branches/Temp_MergeTaggedPDF/src/java/org/apache/fop/render/pdf/pdfbox/StructureTreeMergerUtil.java
    
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/TaggedPDFConductor.java
      - copied unchanged from r1684916, 
xmlgraphics/fop-pdf-images/branches/Temp_MergeTaggedPDF/src/java/org/apache/fop/render/pdf/pdfbox/TaggedPDFConductor.java
    
xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/DocumentRootModifierTestCase.java
      - copied unchanged from r1684916, 
xmlgraphics/fop-pdf-images/branches/Temp_MergeTaggedPDF/test/java/org/apache/fop/render/pdf/DocumentRootModifierTestCase.java
    
xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/PageParentTreeFinderTestCase.java
      - copied unchanged from r1684916, 
xmlgraphics/fop-pdf-images/branches/Temp_MergeTaggedPDF/test/java/org/apache/fop/render/pdf/PageParentTreeFinderTestCase.java
    
xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/StructureTreeMergerTestCase.java
      - copied unchanged from r1684916, 
xmlgraphics/fop-pdf-images/branches/Temp_MergeTaggedPDF/test/java/org/apache/fop/render/pdf/StructureTreeMergerTestCase.java
    
xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/TaggedPDFConductorTestCase.java
      - copied unchanged from r1684916, 
xmlgraphics/fop-pdf-images/branches/Temp_MergeTaggedPDF/test/java/org/apache/fop/render/pdf/TaggedPDFConductorTestCase.java
    xmlgraphics/fop-pdf-images/trunk/test/resources/NoParentTree.pdf
      - copied unchanged from r1684916, 
xmlgraphics/fop-pdf-images/branches/Temp_MergeTaggedPDF/test/resources/NoParentTree.pdf
    xmlgraphics/fop-pdf-images/trunk/test/resources/brokenLink.pdf
      - copied unchanged from r1684916, 
xmlgraphics/fop-pdf-images/branches/Temp_MergeTaggedPDF/test/resources/brokenLink.pdf
    xmlgraphics/fop-pdf-images/trunk/test/resources/classMap.pdf
      - copied unchanged from r1684916, 
xmlgraphics/fop-pdf-images/branches/Temp_MergeTaggedPDF/test/resources/classMap.pdf
    xmlgraphics/fop-pdf-images/trunk/test/resources/emptyRowTable.pdf
      - copied unchanged from r1684916, 
xmlgraphics/fop-pdf-images/branches/Temp_MergeTaggedPDF/test/resources/emptyRowTable.pdf
    xmlgraphics/fop-pdf-images/trunk/test/resources/helloWorld.pdf
      - copied unchanged from r1684916, 
xmlgraphics/fop-pdf-images/branches/Temp_MergeTaggedPDF/test/resources/helloWorld.pdf
    xmlgraphics/fop-pdf-images/trunk/test/resources/linkTagged.pdf
      - copied unchanged from r1684916, 
xmlgraphics/fop-pdf-images/branches/Temp_MergeTaggedPDF/test/resources/linkTagged.pdf
    xmlgraphics/fop-pdf-images/trunk/test/resources/otf.pdf
      - copied unchanged from r1684916, 
xmlgraphics/fop-pdf-images/branches/Temp_MergeTaggedPDF/test/resources/otf.pdf
Modified:
    xmlgraphics/fop-pdf-images/trunk/lib/fop.jar
    
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/AbstractPDFBoxHandler.java
    
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/MergeFontsPDFWriter.java
    
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapter.java
    
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxImageHandler.java
    
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFWriter.java
    
xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java

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

Modified: 
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/AbstractPDFBoxHandler.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/AbstractPDFBoxHandler.java?rev=1684929&r1=1684928&r2=1684929&view=diff
==============================================================================
--- 
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/AbstractPDFBoxHandler.java
 (original)
+++ 
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/AbstractPDFBoxHandler.java
 Thu Jun 11 15:48:05 2015
@@ -40,7 +40,9 @@ import org.apache.fop.pdf.PDFArray;
 import org.apache.fop.pdf.PDFDocument;
 import org.apache.fop.pdf.PDFPage;
 import org.apache.fop.pdf.PDFResources;
+import org.apache.fop.pdf.PDFStructElem;
 import org.apache.fop.pdf.Version;
+import org.apache.fop.render.pdf.PDFLogicalStructureHandler;
 import org.apache.fop.render.pdf.pdfbox.Cache.ValueMaker;
 
 /**
@@ -67,8 +69,11 @@ public abstract class AbstractPDFBoxHand
         = Collections.synchronizedMap(new WeakHashMap<Object, Cache<String, 
Map<Object, Object>>>());
 
     protected String createStreamForPDF(ImagePDF image, PDFPage targetPage, 
FOUserAgent userAgent,
-            AffineTransform at, FontInfo fontinfo, Rectangle pos, Map<Integer, 
PDFArray> pageNumbers)
-        throws IOException {
+                                        AffineTransform at, FontInfo fontinfo, 
Rectangle pos,
+                                        Map<Integer, PDFArray> pageNumbers,
+                                        PDFLogicalStructureHandler handler,
+                                        PDFStructElem curentSessionElem) 
throws IOException {
+
         EventBroadcaster eventBroadcaster = null;
         if (userAgent != null) {
             eventBroadcaster = userAgent.getEventBroadcaster();
@@ -117,7 +122,15 @@ public abstract class AbstractPDFBoxHand
         }
 
         PDFBoxAdapter adapter = new PDFBoxAdapter(targetPage, objectCache, 
pageNumbers);
-        String stream = adapter.createStreamFromPDFBoxPage(pddoc, page, 
originalImageUri, at, fontinfo, pos);
+        if (handler != null) {
+            adapter.setCurrentMCID(handler.getPageParentTree().length());
+        }
+        String stream = adapter.createStreamFromPDFBoxPage(pddoc, page, 
originalImageUri,
+                 at, fontinfo, pos);
+        if (userAgent.isAccessibilityEnabled()) {
+            TaggedPDFConductor conductor = new 
TaggedPDFConductor(curentSessionElem, handler, page, adapter);
+            conductor.handleLogicalStructure(pddoc);
+        }
         return stream;
     }
 

Modified: 
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/MergeFontsPDFWriter.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/MergeFontsPDFWriter.java?rev=1684929&r1=1684928&r2=1684929&view=diff
==============================================================================
--- 
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/MergeFontsPDFWriter.java
 (original)
+++ 
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/MergeFontsPDFWriter.java
 Thu Jun 11 15:48:05 2015
@@ -68,7 +68,7 @@ public class MergeFontsPDFWriter extends
     private Collection<String> parentFonts;
 
     public MergeFontsPDFWriter(COSDictionary fonts, FontInfo fontInfo, String 
key, List<COSName> resourceNames) {
-        super(key, resourceNames);
+        super(key, resourceNames, 0);
         this.fonts = fonts;
         this.fontInfo = fontInfo;
     }

Modified: 
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapter.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapter.java?rev=1684929&r1=1684928&r2=1684929&view=diff
==============================================================================
--- 
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapter.java
 (original)
+++ 
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapter.java
 Thu Jun 11 15:48:05 2015
@@ -100,6 +100,8 @@ public class PDFBoxAdapter {
     private Map<COSName, String> newXObj = new HashMap<COSName, String>();
     private Map<Integer, PDFArray> pageNumbers;
 
+    private int currentMCID;
+
     /**
      * Creates a new PDFBoxAdapter.
      * @param targetPage The target FOP PDF page object
@@ -113,15 +115,27 @@ public class PDFBoxAdapter {
         this.pageNumbers = pageNumbers;
     }
 
-    private Object cloneForNewDocument(Object base) throws IOException {
+    public PDFPage getTargetPage() {
+        return targetPage;
+    }
+
+    public int getCurrentMCID() {
+        return currentMCID;
+    }
+
+    public void setCurrentMCID(int currentMCID) {
+        this.currentMCID = currentMCID;
+    }
+
+    protected Object cloneForNewDocument(Object base) throws IOException {
         return cloneForNewDocument(base, base);
     }
 
-    private Object cloneForNewDocument(Object base, Object keyBase) throws 
IOException {
+    protected Object cloneForNewDocument(Object base, Object keyBase) throws 
IOException {
         return cloneForNewDocument(base, keyBase, Collections.EMPTY_LIST);
     }
 
-    private Object cloneForNewDocument(Object base, Object keyBase, Collection 
exclude) throws IOException {
+    protected Object cloneForNewDocument(Object base, Object keyBase, 
Collection exclude) throws IOException {
         if (base == null) {
             return null;
         }
@@ -262,11 +276,11 @@ public class PDFBoxAdapter {
         return cacheClonedObject(keyBase, stream);
     }
 
-    private Object getCachedClone(Object base) {
+    protected Object getCachedClone(Object base) {
         return clonedVersion.get(getBaseKey(base));
     }
 
-    private Object cacheClonedObject(Object base, Object cloned) {
+    protected Object cacheClonedObject(Object base, Object cloned) {
         Object key = getBaseKey(base);
         if (key == null) {
             return cloned;
@@ -276,7 +290,7 @@ public class PDFBoxAdapter {
             pdfDoc.registerObject(pdfobj);
             if (log.isTraceEnabled()) {
                 log.trace(key + ": " + pdfobj.getClass().getName() + " 
registered as "
-                            + pdfobj.getObjectNumber() + " " + 
pdfobj.getGeneration());
+                        + pdfobj.getObjectNumber() + " " + 
pdfobj.getGeneration());
             }
         }
         clonedVersion.put(key, cloned);
@@ -292,13 +306,12 @@ public class PDFBoxAdapter {
         }
     }
 
-    private void transferDict(COSDictionary orgDict, PDFStream targetDict,
-            Set filter) throws IOException {
+    private void transferDict(COSDictionary orgDict, PDFStream targetDict, Set 
filter) throws IOException {
         transferDict(orgDict, targetDict, filter, false);
     }
 
-    private void transferDict(COSDictionary orgDict, PDFStream targetDict,
-            Set filter, boolean inclusive) throws IOException {
+    private void transferDict(COSDictionary orgDict, PDFStream targetDict, Set 
filter, boolean inclusive)
+        throws IOException {
         Set<COSName> keys = orgDict.keySet();
         for (COSName key : keys) {
             if (inclusive && !filter.contains(key.getName())) {
@@ -354,8 +367,11 @@ public class PDFBoxAdapter {
 //            }
         }
         if (newStream == null) {
-            newStream = new PDFWriter(uniqueName,
-                    
getResourceNames(sourcePageResources.getCOSDictionary())).writeText(pdStream);
+            PDFWriter writer = new PDFWriter(uniqueName, 
getResourceNames(sourcePageResources.getCOSDictionary()),
+                    currentMCID);
+            newStream = writer.writeText(pdStream);
+            currentMCID = writer.getCurrentMCID();
+
         }
         pdStream = new PDStream(sourceDoc, new 
ByteArrayInputStream(newStream.getBytes("ISO-8859-1")));
         mergeXObj(sourcePageResources.getCOSDictionary(), fontinfo, 
uniqueName);

Modified: 
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxImageHandler.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxImageHandler.java?rev=1684929&r1=1684928&r2=1684929&view=diff
==============================================================================
--- 
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxImageHandler.java
 (original)
+++ 
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxImageHandler.java
 Thu Jun 11 15:48:05 2015
@@ -70,7 +70,9 @@ public class PDFBoxImageHandler extends
         }
         FontInfo fontinfo = (FontInfo)context.getHint("fontinfo");
         String stream = createStreamForPDF(pdfImage, pdfContext.getPage(), 
pdfContext.getUserAgent(),
-                pageAdjust, fontinfo, pos, pdfContext.getPageNumbers());
+                pageAdjust, fontinfo, pos, pdfContext.getPageNumbers(),
+                pdfContext.getPdfLogicalStructureHandler(), 
pdfContext.getCurrentSessionStructElem());
+
         if (stream == null) {
             return;
         }

Modified: 
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFWriter.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFWriter.java?rev=1684929&r1=1684928&r2=1684929&view=diff
==============================================================================
--- 
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFWriter.java
 (original)
+++ 
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFWriter.java
 Thu Jun 11 15:48:05 2015
@@ -40,10 +40,12 @@ public class PDFWriter {
     protected StringBuilder s = new StringBuilder();
     private String key;
     private List<COSName> resourceNames;
+    private int currentMCID;
 
-    public PDFWriter(String key, List<COSName> resourceNames) {
+    public PDFWriter(String key, List<COSName> resourceNames, int currentMCID) 
{
         this.key = key;
         this.resourceNames = resourceNames;
+        this.currentMCID = currentMCID;
     }
 
     public String writeText(PDStream pdStream) throws IOException {
@@ -100,9 +102,20 @@ public class PDFWriter {
             s.append("] ");
         } else if (c instanceof COSDictionary) {
             Collection<COSBase> dictArgs = new ArrayList<COSBase>();
-            for (Map.Entry<COSName, COSBase> cn : 
((COSDictionary)c).entrySet()) {
-                dictArgs.add(cn.getKey());
-                dictArgs.add(cn.getValue());
+            if (currentMCID != 0 && op.getOperation().equals("BDC")) {
+                for (Map.Entry<COSName, COSBase> cn : 
((COSDictionary)c).entrySet()) {
+                    if (cn.getKey().getName().equals("MCID")) {
+                        updateMCID(cn, dictArgs);
+                    } else {
+                        dictArgs.add(cn.getKey());
+                        dictArgs.add(cn.getValue());
+                    }
+                }
+            } else {
+                for (Map.Entry<COSName, COSBase> cn : 
((COSDictionary)c).entrySet()) {
+                    dictArgs.add(cn.getKey());
+                    dictArgs.add(cn.getValue());
+                }
             }
             s.append("<<");
             readPDFArguments(op, dictArgs);
@@ -114,9 +127,21 @@ public class PDFWriter {
         }
     }
 
+    private void updateMCID(Map.Entry<COSName, COSBase> cn, 
Collection<COSBase> dictArgs) {
+        COSBase cosMCID = cn.getValue();
+        assert cosMCID instanceof COSInteger;
+        COSInteger mcid = (COSInteger) cosMCID;
+        COSInteger updatedID = COSInteger.get(mcid.intValue() + currentMCID);
+        dictArgs.add(cn.getKey());
+        dictArgs.add(updatedID);
+    }
+
     protected void addKey(COSName cn) {
         if (resourceNames.contains(cn)) {
             s.append(key);
         }
     }
+    protected int getCurrentMCID() {
+        return currentMCID;
+    }
 }

Modified: 
xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java?rev=1684929&r1=1684928&r2=1684929&view=diff
==============================================================================
--- 
xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java
 (original)
+++ 
xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java
 Thu Jun 11 15:48:05 2015
@@ -95,7 +95,6 @@ import junit.framework.Assert;
 
 public class PDFBoxAdapterTestCase {
     private Rectangle2D r = new Rectangle2D.Double();
-    private PDFPage pdfpage = new PDFPage(new PDFResources(0), 0, r, r, r, r);
     private static final String CFF1 = "test/resources/2fonts.pdf";
     private static final String CFF2 = "test/resources/2fonts2.pdf";
     private static final String CFF3 = "test/resources/simpleh.pdf";
@@ -118,6 +117,7 @@ public class PDFBoxAdapterTestCase {
 
     private PDFBoxAdapter getPDFBoxAdapter() {
         PDFDocument doc = new PDFDocument("");
+        PDFPage pdfpage = new PDFPage(new PDFResources(doc), 0, r, r, r, r);
         doc.setMergeFontsEnabled(true);
         pdfpage.setDocument(doc);
         pdfpage.setObjectNumber(1);
@@ -306,7 +306,9 @@ public class PDFBoxAdapterTestCase {
 
     @Test
     public void testStream() throws Exception {
-        pdfpage.setDocument(new PDFDocument(""));
+        PDFDocument pdfdoc = new PDFDocument("");
+        PDFPage pdfpage = new PDFPage(new PDFResources(pdfdoc), 0, r, r, r, r);
+        pdfpage.setDocument(pdfdoc);
         PDFBoxAdapter adapter = new PDFBoxAdapter(pdfpage, new HashMap(), new 
HashMap<Integer, PDFArray>());
         PDDocument doc = PDDocument.load(ROTATE);
         PDPage page = (PDPage) doc.getDocumentCatalog().getAllPages().get(0);
@@ -322,9 +324,10 @@ public class PDFBoxAdapterTestCase {
 
     @Test
     public void testLink() throws Exception {
-        pdfpage.setObjectNumber(1);
         PDFDocument pdfdoc = new PDFDocument("");
+        PDFPage pdfpage = new PDFPage(new PDFResources(pdfdoc), 0, r, r, r, r);
         pdfpage.setDocument(pdfdoc);
+        pdfpage.setObjectNumber(1);
         Map<Integer, PDFArray> pageNumbers = new HashMap<Integer, PDFArray>();
         PDFBoxAdapter adapter = new PDFBoxAdapter(pdfpage, new HashMap(), 
pageNumbers);
         PDDocument doc = PDDocument.load(LINK);
@@ -335,8 +338,7 @@ public class PDFBoxAdapterTestCase {
         Assert.assertTrue(stream.contains("/Link <</MCID 5 >>BDC"));
         Assert.assertTrue(pageNumbers.size() == 4);
         PDFAnnotList annots = (PDFAnnotList) pdfpage.get("Annots");
-        Assert.assertEquals(annots.toPDFString(), "[\n9 0 R\n12 0 R\n]");
-//        pdfdoc.output(System.out);
+        Assert.assertEquals(annots.toPDFString(), "[\n1 0 R\n2 0 R\n]");
         doc.close();
     }
 
@@ -417,17 +419,20 @@ public class PDFBoxAdapterTestCase {
         PDDocument doc = PDDocument.load(SHADING);
         ImagePDF img = new ImagePDF(imgi, doc);
         PDFDocument pdfdoc = new PDFDocument("");
+        PDFPage pdfpage = new PDFPage(new PDFResources(pdfdoc), 0, r, r, r, r);
         pdfpage.setDocument(pdfdoc);
         PDFGState g = new PDFGState();
         pdfdoc.assignObjectNumber(g);
         pdfpage.addGState(g);
         PDFContentGenerator con = new PDFContentGenerator(pdfdoc, null, null);
-        PDFRenderingContext c = new PDFRenderingContext(null, con, pdfpage, 
null);
+        FOUserAgent mockedAgent = mock(FOUserAgent.class);
+        when(mockedAgent.isAccessibilityEnabled()).thenReturn(false);
+        PDFRenderingContext c = new PDFRenderingContext(mockedAgent, con, 
pdfpage, null);
         c.setPageNumbers(new HashMap<Integer, PDFArray>());
         new PDFBoxImageHandler().handleImage(c, img, new Rectangle());
         PDFResources res = c.getPage().getPDFResources();
         OutputStream bos = new ByteArrayOutputStream();
         res.output(bos);
-        Assert.assertTrue(bos.toString().contains("/ExtGState << /GS5"));
+        Assert.assertTrue(bos.toString().contains("/ExtGState << /GS1"));
     }
 }



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

Reply via email to