protected PdfStream getDirectStream(PdfObject obj) { obj = getDirectObject(obj); if (obj != null && obj.isStream()) return (PdfStream) obj; return null; }
/** * Returns a <CODE>PdfObject</CODE> as a <CODE>PdfStream</CODE>, * resolving indirect references. * * The object associated with the <CODE>PdfName</CODE> given is retrieved * and resolved to a direct object. * If it is a <CODE>PdfStream</CODE>, it is cast down and returned as such. * Otherwise <CODE>null</CODE> is returned. * * @param key A <CODE>PdfName</CODE> * @return the associated <CODE>PdfStream</CODE> object, * or <CODE>null</CODE> */ public PdfStream getAsStream(final PdfName key) { PdfStream stream = null; PdfObject orig = getDirectObject(key); if (orig != null && orig.isStream()) stream = (PdfStream) orig; return stream; }
/** * Returns a <CODE>PdfObject</CODE> as a <CODE>PdfStream</CODE>, * resolving indirect references. * * The object corresponding to the specified index is retrieved and * resolved to a direct object. * If it is a <CODE>PdfStream</CODE>, it is cast down and returned as such. * Otherwise <CODE>null</CODE> is returned. * * @param idx The index of the <CODE>PdfObject</CODE> to be returned * @return the corresponding <CODE>PdfStream</CODE> object, * or <CODE>null</CODE> */ public PdfStream getAsStream(final int idx) { PdfStream stream = null; PdfObject orig = getDirectObject(idx); if (orig != null && orig.isStream()) stream = (PdfStream) orig; return stream; }
/** * Returns a <CODE>PdfObject</CODE> as a <CODE>PdfStream</CODE>, * resolving indirect references. * * The object associated with the <CODE>PdfName</CODE> given is retrieved * and resolved to a direct object. * If it is a <CODE>PdfStream</CODE>, it is cast down and returned as such. * Otherwise <CODE>null</CODE> is returned. * * @param key A <CODE>PdfName</CODE> * @return the associated <CODE>PdfStream</CODE> object, * or <CODE>null</CODE> */ public PdfStream getAsStream(final PdfName key) { PdfStream stream = null; PdfObject orig = getDirectObject(key); if (orig != null && orig.isStream()) stream = (PdfStream) orig; return stream; }
/** * Returns a <CODE>PdfObject</CODE> as a <CODE>PdfStream</CODE>, * resolving indirect references. * * The object corresponding to the specified index is retrieved and * resolved to a direct object. * If it is a <CODE>PdfStream</CODE>, it is cast down and returned as such. * Otherwise <CODE>null</CODE> is returned. * * @param idx The index of the <CODE>PdfObject</CODE> to be returned * @return the corresponding <CODE>PdfStream</CODE> object, * or <CODE>null</CODE> */ public PdfStream getAsStream(final int idx) { PdfStream stream = null; PdfObject orig = getDirectObject(idx); if (orig != null && orig.isStream()) stream = (PdfStream) orig; return stream; }
private void clearIndirects(PdfReader reader) { HashMap<RefKey, IndirectReferences> currIndirects = indirectMap.get(reader); ArrayList<RefKey> forDelete = new ArrayList<RefKey>(); for (Map.Entry<RefKey, IndirectReferences> entry: currIndirects.entrySet()) { PdfIndirectReference iRef = entry.getValue().theRef; RefKey key = new RefKey(iRef); PdfIndirectObject iobj = indirectObjects.get(key); if (iobj == null) { forDelete.add(entry.getKey()); } else if (iobj.object.isArray() || iobj.object.isDictionary() || iobj.object.isStream()) { forDelete.add(entry.getKey()); } } for (RefKey key: forDelete) currIndirects.remove(key); }
private void clearIndirects(PdfReader reader) { HashMap<RefKey, IndirectReferences> currIndirects = indirectMap.get(reader); ArrayList<RefKey> forDelete = new ArrayList<RefKey>(); for (Map.Entry<RefKey, IndirectReferences> entry: currIndirects.entrySet()) { PdfIndirectReference iRef = entry.getValue().theRef; RefKey key = new RefKey(iRef); PdfIndirectObject iobj = indirectObjects.get(key); if (iobj == null) { forDelete.add(entry.getKey()); } else if (iobj.object.isArray() || iobj.object.isDictionary() || iobj.object.isStream()) { forDelete.add(entry.getKey()); } } for (RefKey key: forDelete) currIndirects.remove(key); }
PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC)); PdfObject obj; for (int i = 1; i <= pdfDoc.getNumberOfPdfObjects(); i++) { obj = pdfDoc.getPdfObject(i); if (obj != null && obj.isStream()) { byte[] b; try { b = ((PdfStream) obj).getBytes(); } catch (PdfException exc) { b = ((PdfStream) obj).getBytes(false); } FileOutputStream fos = new FileOutputStream(String.format(DEST, i)); fos.write(b); fos.close(); } } pdfDoc.close();
for (int i = 1; i <= reader.getXrefSize(); i++) { obj = reader.getPdfObject(i); if (obj != null && obj.isStream()) { PRStream stream = (PRStream)obj; byte[] b;
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);`enter code here` PdfReader reader; File file = new File("/sdcard/vineeth/anni.prc"); try{ reader = new PdfReader(file.getAbsolutePath()); for (int i = 0; i < reader.getXrefSize(); i++) { PdfObject pdfobj= reader.getPdfObject(i); if (pdfobj == null || !pdfobj.isStream()) { continue; } PdfStream stream = (PdfStream) pdfobj; PdfObject pdfsubtype = stream.get(PdfName.SUBTYPE); if (pdfsubtype != null && pdfsubtype.toString().equals(PdfName.IMAGE.toString())) { byte[] img = PdfReader.getStreamBytesRaw((PRStream) stream); FileOutputStream out = new FileOutputStream(new File(file.getParentFile(),String.format("%1$05d", i) + ".jpg")); out.write(img); out.flush(); out.close(); } } } catch (Exception e) { } }
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); PdfReader reader; File file = new File("/sdcard/vineeth/anni.prc"); try { reader = new PdfReader(file.getAbsolutePath()); for (int i = 0; i < reader.getXrefSize(); i++) { PdfObject pdfobj= reader.getPdfObject(i); if (pdfobj == null || !pdfobj.isStream()) { continue; } PdfStream stream = (PdfStream) pdfobj; PdfObject pdfsubtype = stream.get(PdfName.SUBTYPE); if (pdfsubtype != null && pdfsubtype.toString().equals(PdfName.IMAGE.toString())) { byte[] img = PdfReader.getStreamBytesRaw((PRStream) stream); FileOutputStream out = new FileOutputStream(new File(file.getParentFile(), String.format("%1$05d", i) + ".jpg")); out.write(img); out.flush(); out.close(); } } } catch (Exception e) { // TODO: handle exception } }
/** * Displays an XObject using the registered handler for this XObject's subtype * @param xobjectName the name of the XObject to retrieve from the resource dictionary */ private void displayXObject(PdfName xobjectName) throws IOException { PdfDictionary xobjects = resources.getAsDict(PdfName.XOBJECT); PdfObject xobject = xobjects.getDirectObject(xobjectName); PdfStream xobjectStream = (PdfStream)xobject; PdfName subType = xobjectStream.getAsName(PdfName.SUBTYPE); if (xobject.isStream()){ XObjectDoHandler handler = xobjectDoHandlers.get(subType); if (handler == null) handler = xobjectDoHandlers.get(PdfName.DEFAULT); handler.handleXObject(this, xobjectStream, xobjects.getAsIndirectObject(xobjectName)); } else { throw new IllegalStateException(MessageLocalization.getComposedMessage("XObject.1.is.not.a.stream", xobjectName)); } }
/** * Displays an XObject using the registered handler for this XObject's subtype * @param xobjectName the name of the XObject to retrieve from the resource dictionary */ private void displayXObject(PdfName xobjectName) throws IOException { PdfDictionary xobjects = resources.getAsDict(PdfName.XOBJECT); PdfObject xobject = PdfReader.getPdfObjectRelease(xobjects.get(xobjectName)); PdfStream xobjectStream = (PdfStream)xobject; PdfName subType = xobjectStream.getAsName(PdfName.SUBTYPE); if (xobject.isStream()){ XObjectDoHandler handler = xobjectDoHandlers.get(subType); if (handler == null) handler = xobjectDoHandlers.get(PdfName.DEFAULT); handler.handleXObject(this, xobjectStream, xobjects.getAsIndirectObject(xobjectName),markedContentStack); } else { throw new IllegalStateException(MessageLocalization.getComposedMessage("XObject.1.is.not.a.stream", xobjectName)); } }
return new byte[0]; ByteArrayOutputStream bout = null; if (contents.isStream()) { return getStreamBytes((PRStream)contents, file); for (int k = 0; k < array.size(); ++k) { PdfObject item = getPdfObjectRelease(array.getPdfObject(k)); if (item == null || !item.isStream()) continue; byte[] b = getStreamBytes((PRStream)item, file);
for (int i = 1; i <= reader.getXrefSize(); i++) { obj = reader.getPdfObject(i); if (obj != null && obj.isStream()) { PRStream stream = (PRStream) obj;
if ((tagged || mergeFields) && indirectObjects != null && (object.isArray() || object.isDictionary() || object.isStream() || object.isNull())) { RefKey key = new RefKey(ref); PdfIndirectObject obj = indirectObjects.get(key);
if ((tagged || mergeFields) && indirectObjects != null && (object.isArray() || object.isDictionary() || object.isStream() || object.isNull())) { RefKey key = new RefKey(ref); PdfIndirectObject obj = indirectObjects.get(key);
private void updateReferences(PdfObject obj) { if (obj.isDictionary() || obj.isStream()) { PdfDictionary dictionary = (PdfDictionary)obj; for (PdfName key : dictionary.getKeys()) {
private PdfObject propagate(PdfObject obj) throws IOException { if (obj == null) { return new PdfNull(); } else if (obj.isArray()) { PdfArray a = (PdfArray)obj; for (int i = 0; i < a.size(); i++) { a.set(i, propagate(a.getPdfObject(i))); } return a; } else if (obj.isDictionary() || obj.isStream()) { PdfDictionary d = (PdfDictionary)obj; for (PdfName key : d.getKeys()) { d.put(key, propagate(d.get(key))); } return d; } else if (obj.isIndirect()) { obj = PdfReader.getPdfObject(obj); return addToBody(propagate(obj)).getIndirectReference(); } else return obj; }
private PdfObject propagate(PdfObject obj) throws IOException { if (obj == null) { return new PdfNull(); } else if (obj.isArray()) { PdfArray a = (PdfArray)obj; for (int i = 0; i < a.size(); i++) { a.set(i, propagate(a.getPdfObject(i))); } return a; } else if (obj.isDictionary() || obj.isStream()) { PdfDictionary d = (PdfDictionary)obj; for (PdfName key : d.getKeys()) { d.put(key, propagate(d.get(key))); } return d; } else if (obj.isIndirect()) { obj = PdfReader.getPdfObject(obj); return addToBody(propagate(obj)).getIndirectReference(); } else return obj; }