public static String generateID(COSKey key) { return String.valueOf(key.getNumber() + " " + key.getGeneration()); }
public void addTo(final Map<COSKey, Long> offsets) { for (Map.Entry<Integer, COSXRefEntry> entry : this.entries.entrySet()) { final COSKey key = new COSKey(entry.getKey(), entry.getValue().generation); if (entry.getValue().free == 'n') { offsets.put(key, entry.getValue().offset); } else { offsets.remove(new COSKey(key.getNumber(), key.getGeneration() - 1)); } } }
public static String getType1FontProgramID(COSKey key) { if (key == null) { return null; } return "Type1FontProgram " + key.toString(); }
public void addTo(final List<COSKey> keys) { for (Map.Entry<Integer, COSXRefEntry> entry : this.entries.entrySet()) { final COSKey key = new COSKey(entry.getKey(), entry.getValue().generation); if (entry.getValue().free == 'n') { keys.add(key); } else { removeIfNumberEqual(keys, key.getNumber()); } } }
private static void removeIfNumberEqual(final List<COSKey> keys, final int number) { for (COSKey key : keys) { if (key.getNumber() == number) { keys.remove(number); } } }
public void visitFromIndirect(COSIndirect obj) { try { COSKey key = obj.getKey(); if (key.equals(new COSKey())) { COSObject direct = obj.getDirect(); key = this.document.setObject(direct); obj.setKey(key, this.document); addToWrite(key); } this.write(key); this.write(" R"); } catch (IOException e) { throw new RuntimeException(e.getMessage()); } }
public COSKey next() { return new COSKey(this.size++); }
if (key != null && StaticContainers.getTransparencyVisitedContentStreams().peek().equals(key)) { StaticContainers.getTransparencyVisitedContentStreams().pop();
public void add(final COSKey key, final long offset, final char free) { this.entries.put(key.getNumber(), new COSXRefEntry(offset, key.getGeneration(), free)); }
@Override public COSObject getObject(final COSKey key) throws IOException { if (!super.containsKey(key)) { LOGGER.log(Level.FINE, "Trying to get object " + key.getNumber() + " " + key.getGeneration() + " that is not present in the document"); return null; return parser.getObject(key); COSKey newKey = new COSKey(- (int)offset, 0); COSObject object = getObject(newKey); if(object == null || !object.getType().equals(COSObjType.COS_STREAM)) { parser = new DecodedObjectStreamParser( objectStream.getData(COSStream.FilterFlags.DECODE), objectStream, new COSKey((int) -offset, 0), this.parser.getDocument()); objectStreams.put(Long.valueOf(-offset), parser);
public void set(final List<COSKey> keys) { this.all = keys; n.clear(); f.clear(); int lastIndex = keys.size() - 1; this.size = keys.isEmpty() ? 1 : keys.get(lastIndex).getNumber() + 1; }
protected COSKey getKeyToWrite(final COSKey key) { if (!this.renum.containsKey(key)) { this.renum.put(key, new COSKey(this.renum.size(), 0)); } return this.renum.get(key); }
public static String getTrueTypeFontProgramID(COSKey key, boolean isSymbolic, COSObject encoding) { if (key == null) { return null; } return "TrueTypeFontProgram " + key.toString() + " " + String.valueOf(isSymbolic) + " " + getCOSObjectID(encoding); }
/** * Constructor from decoded object stream data and COSStream. * * @param inputStream contains decoded object stream. * @param objectStream is COSStream that is being parsed. * @param streamKey is key of given COSStream. * @throws IOException */ public DecodedObjectStreamParser(final ASInputStream inputStream, COSStream objectStream, COSKey streamKey, COSDocument doc) throws IOException { super(doc, inputStream); this.objectStream = objectStream; this.internalOffsets = new HashMap<>(); try { calculateInternalOffsets(); } catch (IOException e) { throw new IOException("Object stream " + streamKey.getNumber() + " " + streamKey.getGeneration() + " has invalid N value", e); } }
private String getId(final COSObject base, final FeatureObjectType objType) { if (base == null || base.empty()) { return null; } COSKey key = getObjectKey(base); long numb = this.processedIDs.size(); String type = "Dir"; if (key != null) { numb = key.getNumber(); type = "Indir"; } return objType.getIdPrefix() + type + numb; }
/** * @return list of keys of all objects, contained inside this object stream. */ public List<COSKey> getInternalObjectsKeys() { List<COSKey> res = new ArrayList<>(); for (Map.Entry<Integer, Long> entry : internalOffsets.entrySet()) { res.add(new COSKey(entry.getKey(), 0)); // Object inside streams shall have generation 0 } return res; }
private static String getBaseFontProgramID(String type, COSKey key, CMap cMap) { if (key == null) { return null; } return type + " " + key.toString() + " " + getObjectID(cMap); }
/** * Gets a byte string consisting of object number and object generation * concatenated. * * @param objectKey is key of object. * @return byte string consisting of object number and object generation * concatenated. */ public static byte[] getObjectKeyDigest(COSKey objectKey) { byte[] res = new byte[5]; System.arraycopy(EncryptionToolsRevision4.intToBytesLowOrderFirst( objectKey.getNumber()), 0, res, 0, 3); System.arraycopy(EncryptionToolsRevision4.intToBytesLowOrderFirst( objectKey.getGeneration()), 0, res, 3, 2); return res; } }