List of usage examples for org.apache.pdfbox.cos COSObject getObjectNumber
public long getObjectNumber()
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(); } }