Example usage for org.apache.pdfbox.cos COSObject getObjectNumber

List of usage examples for org.apache.pdfbox.cos COSObject getObjectNumber

Introduction

In this page you can find the example usage for org.apache.pdfbox.cos COSObject getObjectNumber.

Prototype

public long getObjectNumber() 

Source Link

Document

Getter for property objectNumber.

Usage

From source file:org.apache.fop.render.pdf.pdfbox.StructureTreeMerger.java

License:Apache License

private PDFStructElem createPageStructElements(COSObject entry) throws IOException {
    int objID = (int) entry.getObjectNumber();
    if (structElemCache.containsKey(objID)) {
        return null;
    }//from  w w w . j  a  v a  2 s.c  o  m
    PDFStructElem elem = createAndRegisterStructElem(entry);
    copyElemEntries(entry, elem);
    COSDictionary baseDict = (COSDictionary) entry.getObject();
    COSBase kid = baseDict.getItem(COSName.K);
    createKids(kid, baseDict, elem, false);
    return elem;
}

From source file:org.apache.fop.render.pdf.pdfbox.StructureTreeMerger.java

License:Apache License

private void createParents(COSObject cosElem, COSObject cosParentElem, PDFStructElem elem) throws IOException {
    int elemObjectID = (int) cosParentElem.getObjectNumber();
    COSDictionary parentElemDictionary = (COSDictionary) cosParentElem.getObject();
    PDFStructElem elemParent = structElemCache.get(elemObjectID);
    if (isStructureTreeRoot(parentElemDictionary)) {
        elem.setParent(currentSessionElem);
        currentSessionElem.addKid(elem);
        topElems.add(cosElem);/*from ww  w.  j a va 2 s .  c o  m*/
    } else if (elemParent != null) {
        if (!checkIfStructureTypeIsPresent(parentElemDictionary, StandardStructureTypes.TR)) {
            elem.setParent(elemParent);
            int position = StructureTreeMergerUtil.findObjectPositionInKidsArray(cosElem);
            elemParent.addKidInSpecificOrder(position, elem);
        }
    } else if (!checkIfStructureTypeIsPresent(parentElemDictionary, StandardStructureTypes.DOCUMENT)) {
        elemParent = createAndRegisterStructElem(cosParentElem);
        copyElemEntries(cosParentElem, elemParent);
        elem.setParent(elemParent);
        fillKidsWithNull(elemParent, (COSDictionary) cosParentElem.getObject());
        if (((COSName) parentElemDictionary.getDictionaryObject(COSName.S)).getName()
                .equals(StandardStructureTypes.TR)) {
            COSBase rowKids = parentElemDictionary.getItem(COSName.K);
            createKids(rowKids, parentElemDictionary, elemParent, true);
        } else {
            int position = StructureTreeMergerUtil.findObjectPositionInKidsArray(cosElem);
            elemParent.addKidInSpecificOrder(position, elem);
        }
        COSObject parentObj = (COSObject) parentElemDictionary.getItem(COSName.P);
        createParents(cosParentElem, parentObj, elemParent);
    } else {
        elem.setParent(currentSessionElem);
        int position = StructureTreeMergerUtil.findObjectPositionInKidsArray(cosElem);
        currentSessionElem.addKidInSpecificOrder(position, elem);
        topElems.add(cosElem);
    }
}

From source file:org.apache.fop.render.pdf.pdfbox.StructureTreeMerger.java

License:Apache License

private void createKidFromCOSObject(COSObject baseObj, COSDictionary parentDict, PDFStructElem parent,
        boolean originatedFromTableRow) throws IOException {
    COSBase baseKid = baseObj.getObject();
    if (baseKid instanceof COSInteger) {
        COSInteger number = (COSInteger) baseKid;
        createKids(number, parentDict, parent, originatedFromTableRow);
    } else {//from www.  java2  s. co m
        COSDictionary unwrappedDict = (COSDictionary) baseKid;
        if (unwrappedDict.getDictionaryObject(COSName.S) == null) {
            COSDictionary mcrDict = (COSDictionary) baseKid;
            createKidFromCOSDictionary(mcrDict, parent, parentDict);
        } else if (originatedFromTableRow) {
            int objID = (int) baseObj.getObjectNumber();
            if (structElemCache.get(objID) != null) {
                PDFStructElem kidElem = structElemCache.get(objID);
                parent.addKid(kidElem);
                kidElem.setParent(parent);
            } else {
                createkidEntryFromCosObjectForRow(baseObj, parent);
            }
        } else {
            parent.addKid(null);
        }
    }
}

From source file:org.apache.fop.render.pdf.pdfbox.StructureTreeMerger.java

License:Apache License

private void createkidEntryFromCosObjectForRow(COSObject entree, PDFStructElem parent) throws IOException {
    int entreeObjID = (int) entree.getObjectNumber();
    PDFStructElem elemRef = structElemCache.get(entreeObjID);
    if (elemRef == null) {
        elemRef = createAndRegisterStructElem(entree);
        copyElemEntries(entree, elemRef);
        COSDictionary baseDict = (COSDictionary) entree.getObject();
        COSBase kid = baseDict.getItem(COSName.K);
        createKids(kid, baseDict, elemRef, true);
        parent.addKid(elemRef);/*from w w w  .  j a  va 2s.  c om*/
    } else {
        parent.addKid(elemRef);
    }
    elemRef.setParent(parent);
}

From source file:org.apache.fop.render.pdf.pdfbox.StructureTreeMerger.java

License:Apache License

private void findLeafKids(COSBase kid, COSObject parent) throws IOException {
    if (kid instanceof COSArray) {
        COSArray arrayKid = (COSArray) kid;
        for (COSBase arrayEntry : arrayKid) {
            findLeafKids(arrayEntry, parent);
        }//w ww  . j av a 2  s  . com
    } else if (kid instanceof COSObject) {
        COSObject kidObject = (COSObject) kid;
        COSBase base = kidObject.getObject();
        COSDictionary temp = (COSDictionary) base;
        if (temp.getDictionaryObject(COSName.S) != null && temp.getItem(COSName.K) != null) {

            COSBase tempKids = temp.getItem(COSName.K);
            findLeafKids(tempKids, kidObject);
        } else {
            findLeafKids(temp, parent);
        }
    } else if (kid instanceof COSDictionary) {
        COSDictionary kidDictionary = (COSDictionary) kid;
        COSDictionary parentDict = (COSDictionary) parent.getObject();
        if (isElementFromSourcePage(kidDictionary, parentDict)) {
            PDFStructElem elem = structElemCache.get((int) parent.getObjectNumber());
            if (elem == null) {
                elem = createAndRegisterStructElem(parent);
                copyElemEntries(parent, elem);
                extra.add(parent);
                createKids(kid, parentDict, elem, false);
            }
        }
    } else {
        assert kid instanceof COSInteger;
        COSDictionary parentDict = (COSDictionary) parent.getObject();
        if (checkPageEntryInAncestorsRecursively(parentDict)) {
            PDFStructElem elem = structElemCache.get((int) parent.getObjectNumber());
            if (elem == null) {
                elem = createAndRegisterStructElem(parent);
                copyElemEntries(parent, elem);
                createKids(kid, parentDict, elem, false);
            }
        }
    }
}

From source file:org.apache.padaf.preflight.RetrieveMissingStream.java

License:Apache License

public static void main(String[] args) throws Exception {
    if (args.length != 1) {
        System.err.println("usage : RetrieveMissingStream file");
        System.exit(233);/*  w w  w .ja v  a  2  s . co  m*/
    }

    HashSet<COSObjectKey> listOfKeys = new HashSet<COSObjectKey>();

    PDDocument document = PDDocument.load(new FileInputStream(args[0]));
    List<COSObject> lCosObj = document.getDocument().getObjects();
    for (COSObject cosObject : lCosObj) {

        if (cosObject.getObject() instanceof COSStream) {
            listOfKeys.add(new COSObjectKey(cosObject.getObjectNumber().intValue(),
                    cosObject.getGenerationNumber().intValue()));
        }

    }

    PDDocumentCatalog catalog = document.getDocumentCatalog();
    List<?> pages = catalog.getAllPages();
    for (int i = 0; i < pages.size(); ++i) {
        PDPage pdp = (PDPage) pages.get(i);
        PDStream pdStream = pdp.getContents();

        COSBase b = pdp.getCOSDictionary().getItem(COSName.getPDFName("Contents"));
        System.out.println();
    }
}