Example usage for org.apache.pdfbox.cos COSArray add

List of usage examples for org.apache.pdfbox.cos COSArray add

Introduction

In this page you can find the example usage for org.apache.pdfbox.cos COSArray add.

Prototype

public void add(int i, COSBase object) 

Source Link

Document

Add the specified object at the ith location and push the rest to the right.

Usage

From source file:org.apache.fop.render.pdf.StructureTreeMergerTestCase.java

License:Apache License

@Test
public void testNullEntriesInParentTree() throws IOException {
    setUp();//from w w w.  ja v a2 s  . co m
    PDDocument doc = PDDocument.load(new File(getClass().getResource(LINK).getFile()));
    PDPage srcPage = doc.getPage(0);
    PageParentTreeFinder finder = new PageParentTreeFinder(srcPage);
    COSArray markedContentParents = finder.getPageParentTreeArray(doc);
    markedContentParents.add(0, null);
    PDFStructElem elem = new PDFStructElem();
    elem.setObjectNumber(2);
    adapter = new PDFBoxAdapter(pdfPage, new HashMap(), new HashMap<Integer, PDFArray>());
    PDFLogicalStructureHandler handler = setUpPDFLogicalStructureHandler();
    StructureTreeMerger merger = new StructureTreeMerger(elem, handler, adapter, srcPage);
    merger.copyStructure(markedContentParents);
    PDFArray array = handler.getPageParentTree();
    Assert.assertNull(array.get(0));
}

From source file:org.apache.fop.render.pdf.StructureTreeMergerTestCase.java

License:Apache License

@Test
public void testDirectDescedants() throws IOException {
    PDFStructElem elem = new PDFStructElem();
    elem.setObjectNumber(100);//from  w  ww  .ja va2  s .  c  o  m
    setUp();
    adapter = new PDFBoxAdapter(pdfPage, new HashMap(), new HashMap<Integer, PDFArray>());
    PDFLogicalStructureHandler handler = setUpPDFLogicalStructureHandler();
    PDPage srcPage = new PDPage();
    StructureTreeMerger merger = new StructureTreeMerger(elem, handler, adapter, srcPage);
    COSArray array = new COSArray();
    COSDictionary dict = new COSDictionary();
    dict.setItem(COSName.S, COSName.P);
    COSObject obj = new COSObject(dict);
    obj.setObjectNumber(200);
    obj.setGenerationNumber(0);
    array.add(0, obj);
    merger.createDirectDescendants(array, elem);
    List<PDFObject> list = elem.getKids();
    PDFStructElem kid = (PDFStructElem) list.get(0);
    PDFName name = (PDFName) kid.get("S");
    String test = name.getName();
    Assert.assertEquals(test, "P");
}

From source file:se.streamsource.streamflow.web.application.pdf.Underlay.java

License:Apache License

private void mergePage(COSArray array, PDPage page) {
    int layoutPageNum = pageCount % layoutPages.size();
    LayoutPage layoutPage = (LayoutPage) layoutPages.get(layoutPageNum);
    PDResources resources = page.findResources();
    if (resources == null) {
        resources = new PDResources();
        page.setResources(resources);/*w  ww  . j av a 2s.c o  m*/
    }
    COSDictionary docResDict = resources.getCOSDictionary();
    COSDictionary layoutResDict = layoutPage.res;

    mergeArray(COSName.PROC_SET, docResDict, layoutResDict);
    mergeDictionary(COSName.COLORSPACE, docResDict, layoutResDict, layoutPage.objectNameMap);
    mergeDictionary(COSName.FONT, docResDict, layoutResDict, layoutPage.objectNameMap);
    mergeDictionary(COSName.XOBJECT, docResDict, layoutResDict, layoutPage.objectNameMap);
    mergeDictionary(COSName.EXT_G_STATE, docResDict, layoutResDict, layoutPage.objectNameMap);

    array.add(0, layoutPage.contents);

}