private COSDictionary toDictionary(COSBase o) { if (o instanceof COSObject) { return (COSDictionary)((COSObject)o).getObject(); } else { return (COSDictionary)o; } }
COSBase length = lengthObj.getObject(); if (length == null) length = lengthObj.getObject(); LOG.warn("Length object (" + lengthObj.getObjectNumber() + " " + lengthObj.getGenerationNumber() + ") not found"); return null;
/** * This method will search the list of objects for types of ObjStm. If it finds * them then it will parse out all of the objects from the stream that is contains. * * @throws IOException If there is an error parsing the stream. */ public void dereferenceObjectStreams() throws IOException { for( COSObject objStream : getObjectsByType( COSName.OBJ_STM ) ) { COSStream stream = (COSStream)objStream.getObject(); PDFObjectStreamParser parser = new PDFObjectStreamParser(stream, this); parser.parse(); for (COSObject next : parser.getObjects()) { COSObjectKey key = new COSObjectKey(next); if (objectPool.get(key) == null || objectPool.get(key).getObject() == null // xrefTable stores negated objNr of objStream for objects in objStreams || (xrefTable.containsKey(key) && xrefTable.get(key) == -objStream.getObjectNumber())) { COSObject obj = getObjectFromPool(key); obj.setObject(next.getObject()); } } } }
/** * Constructor. * * @param object The object that this key will represent. */ public COSObjectKey(COSObject object) { this(object.getObjectNumber(), object.getGenerationNumber()); }
/** * This will get an object from the pool. * * @param key The object key. * * @return The object in the pool or a new one if it has not been parsed yet. */ public COSObject getObjectFromPool(COSObjectKey key) { COSObject obj = null; if( key != null ) { obj = objectPool.get(key); } if (obj == null) { // this was a forward reference, make "proxy" object obj = new COSObject(null); if( key != null ) { obj.setObjectNumber(key.getNumber()); obj.setGenerationNumber(key.getGeneration()); objectPool.put(key, obj); } } return obj; }
final COSObject pdfObject = document.getObjectFromPool(objKey); if (pdfObject.getObject() == null) pdfObject.setObject(COSNull.NULL); addValidationError(new ValidationError(ERROR_SYNTAX_OBJ_DELIMITER, "Single space expected [offset="+offset+"; key="+offsetOrObjstmObNr.toString()+"; line="+line+"; object="+pdfObject.toString()+"]")); pdfObject.setObject(pb); stmObj.setObject(next.getObject()); return pdfObject.getObject();
COSObjectKey objKey = new COSObjectKey(obj.getObjectNumber(), obj.getGenerationNumber()); pdfObject.setObject(COSNull.NULL); if (parsedObj != null) obj.setObject(parsedObj); addNewToList(toBeParsedList, parsedObj, addedObjects); parsedObjects.add(getObjectId(obj));
private String getId(final COSBase base, final FeatureObjectType objType) { if (base == null) { return null; } long numb = this.processedIDs.size(); COSBase item = base; String type = "Dir"; while (item instanceof COSObject) { numb = ((COSObject) item).getObjectNumber(); type = "Indir"; item = ((COSObject) item).getObject(); } return objType.getIdPrefix() + type + numb; }
/** * Constructor. * * @param object The object that this encapsulates. * */ public COSObject(COSBase object) { setObject( object ); }
void validateExplicitDestination(PreflightContext ctx, COSArray ar) { // "In each case, page is an indirect reference to a page object." if (ar.get(0) instanceof COSObject) { COSObject ob = (COSObject) ar.get(0); COSBase type = ob.getDictionaryObject(COSName.TYPE); if (COSName.PAGE.equals(type)) { try { PDDestination.create(ar); } catch (IOException e) { ctx.addValidationError(new ValidationResult.ValidationError(ERROR_SYNTAX_DICT_INVALID, e.getMessage(), e)); } return; } } ctx.addValidationError(new ValidationResult.ValidationError(ERROR_SYNTAX_DICT_INVALID, "First element in Destination array entry must be an indirect reference to a dictionary of /Type /Page, but is " + ar.getName(0))); }
retval = new COSObject(null); break; case (char)-1:
/** * Creates a unique object id using object number and object generation * number. (requires object number < 2^31)) */ private long getObjectId(final COSObject obj) { return obj.getObjectNumber() << 32 | obj.getGenerationNumber(); }
while( (cosObject = parseDirObject()) != null ) object = new COSObject(cosObject); object.setGenerationNumber(0); if (objectCounter >= objectNumbers.size()) break; object.setObjectNumber( objectNumbers.get( objectCounter) ); streamObjects.add( object ); if(LOG.isDebugEnabled())
pdfObject.setObject(pb);
COSBase cb = catalog.getDictionaryObject(COSName.METADATA); if (cb == null)
if( line.equals( "R" ) ) retval = new COSObject( null );
/** * This will get an object from the array. This will dereference the object. * If the object is COSNull then null will be returned. * * @param index The index into the array to get the object. * * @return The object at the requested index. */ public COSBase getObject( int index ) { Object obj = objects.get( index ); if( obj instanceof COSObject ) { obj = ((COSObject)obj).getObject(); } if (obj instanceof COSNull) { obj = null; } return (COSBase)obj; }
for (COSObject cosObject : doc.getDocument().getObjects()) COSBase base = cosObject.getObject(); if (base instanceof COSStream) cosObject.getObjectNumber() + " " + cosObject.getGenerationNumber() + " obj: " + ex.getMessage()); continue;