private File copyToTemporaryFile(PRStream prs) throws TaskIOException { File tmpFile = createTemporaryBuffer(); LOG.debug("Created output temporary buffer {}", tmpFile); ByteArrayInputStream inputStream = null; try { inputStream = new ByteArrayInputStream(PdfReader.getStreamBytes(prs)); FileUtils.copyInputStreamToFile(inputStream, tmpFile); LOG.debug("Attachment unpacked to temporary buffer"); } catch (IOException e) { throw new TaskIOException("Unable to copy attachment to temporary file.", e); } finally { IOUtils.closeQuietly(inputStream); } return tmpFile; }
listDict(stream); out.println("startstream"); byte[] b = PdfReader.getStreamBytes(stream);
/** * Parses the ToUnicode entry, if present, and constructs a CMap for it * @since 2.1.7 */ private void processToUnicode(){ PdfObject toUni = fontDic.get(PdfName.TOUNICODE); if (toUni != null){ try { byte[] touni = PdfReader.getStreamBytes((PRStream)PdfReader.getPdfObjectRelease(toUni)); CMapParser cmapParser = new CMapParser(); toUnicodeCmap = cmapParser.parse(new ByteArrayInputStream(touni)); } catch (IOException e) { throw new Error("Unable to process ToUnicode map - " + e.getMessage(), e); } } }
/** * Parses the ToUnicode entry, if present, and constructs a CMap for it * @since 2.1.7 */ private void processToUnicode(){ PdfObject toUni = fontDic.get(PdfName.TOUNICODE); if (toUni != null){ try { byte[] touni = PdfReader.getStreamBytes((PRStream)PdfReader.getPdfObjectRelease(toUni)); CMapParser cmapParser = new CMapParser(); toUnicodeCmap = cmapParser.parse(new ByteArrayInputStream(touni)); } catch (IOException e) { throw new Error("Unable to process ToUnicode map - " + e.getMessage(), e); } } }
private byte[] getContentBytesFromPdfObject(PdfObject object) throws IOException { switch (object.type()) { case PdfObject.INDIRECT: return getContentBytesFromPdfObject(PdfReader.getPdfObject(object)); case PdfObject.STREAM: return PdfReader.getStreamBytes((PRStream) PdfReader.getPdfObject(object)); case PdfObject.ARRAY: ByteArrayOutputStream baos = new ByteArrayOutputStream(); ListIterator<PdfObject> iter = ((PdfArray) object).listIterator(); while (iter.hasNext()) { PdfObject element = iter.next(); baos.write(getContentBytesFromPdfObject(element)); } return baos.toByteArray(); default: throw new IllegalStateException("Unsupported type: " + object.getClass().getCanonicalName()); } } }
/** * Parses the ToUnicode entry, if present, and constructs a CMap for it * * @since 2.1.7 */ private void processToUnicode() { PdfObject toUni = fontDic.get(PdfName.TOUNICODE); if (toUni != null) { try { byte[] touni = PdfReader.getStreamBytes((PRStream) PdfReader .getPdfObjectRelease(toUni)); CMapParser cmapParser = new CMapParser(); toUnicodeCmap = cmapParser .parse(new ByteArrayInputStream(touni)); } catch (IOException e) { throw new Error("Unable to process ToUnicode map - " + e.getMessage(), e); } } }
/** Get the content from a stream applying the required filters. * @param stream the stream * @throws IOException on error * @return the stream content */ public static byte[] getStreamBytes(PRStream stream) throws IOException { RandomAccessFileOrArray rf = stream.getReader().getSafeFile(); try { rf.reOpen(); return getStreamBytes(stream, rf); } finally { try{rf.close();}catch(Exception e){} } }
/** Get the content from a stream applying the required filters. * @param stream the stream * @throws IOException on error * @return the stream content */ public static byte[] getStreamBytes(PRStream stream) throws IOException { RandomAccessFileOrArray rf = stream.getReader().getSafeFile(); try { rf.reOpen(); return getStreamBytes(stream, rf); } finally { try{rf.close();}catch(Exception e){} } }
/** * Get the content from a stream applying the required filters. * * @param stream * the stream * @throws IOException * on error * @return the stream content */ public static byte[] getStreamBytes(PRStream stream) throws IOException { RandomAccessFileOrArray rf = stream.getReader().getSafeFile(); try { rf.reOpen(); return getStreamBytes(stream, rf); } finally { try { rf.close(); } catch (Exception e) { } } }
/** Gets the XML metadata. * @throws IOException on error * @return the XML metadata */ public byte[] getMetadata() throws IOException { PdfObject obj = getPdfObject(catalog.get(PdfName.METADATA)); if (!(obj instanceof PRStream)) return null; RandomAccessFileOrArray rf = getSafeFile(); byte b[] = null; try { rf.reOpen(); b = getStreamBytes((PRStream)obj, rf); } finally { try { rf.close(); } catch (Exception e) { // empty on purpose } } return b; }
/** Gets the XML metadata. * @throws IOException on error * @return the XML metadata */ public byte[] getMetadata() throws IOException { PdfObject obj = getPdfObject(catalog.get(PdfName.METADATA)); if (!(obj instanceof PRStream)) return null; RandomAccessFileOrArray rf = getSafeFile(); byte b[] = null; try { rf.reOpen(); b = getStreamBytes((PRStream)obj, rf); } finally { try { rf.close(); } catch (Exception e) { // empty on purpose } } return b; }
/** * Gets the XML metadata. * * @throws IOException * on error * @return the XML metadata */ public byte[] getMetadata() throws IOException { PdfObject obj = getPdfObject(catalog.get(PdfName.METADATA)); if (!(obj instanceof PRStream)) return null; RandomAccessFileOrArray rf = getSafeFile(); byte[] b; try { rf.reOpen(); b = getStreamBytes((PRStream) obj, rf); } finally { try { rf.close(); } catch (Exception e) { // empty on purpose } } return b; }
protected PdfObject readOneObjStm(PRStream stream, int idx) throws IOException { int first = stream.getAsNumber(PdfName.FIRST).intValue(); byte b[] = getStreamBytes(stream, tokens.getFile()); PRTokeniser saveTokens = tokens; tokens = new PRTokeniser(b);
protected PdfObject readOneObjStm(PRStream stream, int idx) throws IOException { int first = stream.getAsNumber(PdfName.FIRST).intValue(); byte[] b = getStreamBytes(stream, tokens.getFile()); PRTokeniser saveTokens = tokens; tokens = new PRTokeniser(b);
byte[] destProfile = null; if (stream != null) { destProfile = PdfReader.getStreamBytes(stream);
private void processType0(PdfDictionary font) { try { PdfObject toUniObject = PdfReader.getPdfObjectRelease(font.get(PdfName.TOUNICODE)); PdfArray df = (PdfArray)PdfReader.getPdfObjectRelease(font.get(PdfName.DESCENDANTFONTS)); PdfDictionary cidft = (PdfDictionary)PdfReader.getPdfObjectRelease(df.getPdfObject(0)); PdfNumber dwo = (PdfNumber)PdfReader.getPdfObjectRelease(cidft.get(PdfName.DW)); int dw = 1000; if (dwo != null) dw = dwo.intValue(); IntHashtable widths = readWidths((PdfArray)PdfReader.getPdfObjectRelease(cidft.get(PdfName.W))); PdfDictionary fontDesc = (PdfDictionary)PdfReader.getPdfObjectRelease(cidft.get(PdfName.FONTDESCRIPTOR)); fillFontDesc(fontDesc); if (toUniObject != null){ fillMetrics(PdfReader.getStreamBytes((PRStream)toUniObject), widths, dw); } } catch (Exception e) { throw new ExceptionConverter(e); } }
byte destProfile[] = null; if (stream != null) { destProfile = PdfReader.getStreamBytes(stream);
private void processType0(PdfDictionary font) { try { PdfObject toUniObject = PdfReader.getPdfObjectRelease(font.get(PdfName.TOUNICODE)); PdfArray df = (PdfArray)PdfReader.getPdfObjectRelease(font.get(PdfName.DESCENDANTFONTS)); PdfDictionary cidft = (PdfDictionary)PdfReader.getPdfObjectRelease(df.getPdfObject(0)); PdfNumber dwo = (PdfNumber)PdfReader.getPdfObjectRelease(cidft.get(PdfName.DW)); int dw = 1000; if (dwo != null) dw = dwo.intValue(); IntHashtable widths = readWidths((PdfArray)PdfReader.getPdfObjectRelease(cidft.get(PdfName.W))); PdfDictionary fontDesc = (PdfDictionary)PdfReader.getPdfObjectRelease(cidft.get(PdfName.FONTDESCRIPTOR)); fillFontDesc(fontDesc); if (toUniObject != null){ fillMetrics(PdfReader.getStreamBytes((PRStream)toUniObject), widths, dw); } } catch (Exception e) { throw new ExceptionConverter(e); } }
private void processType0(PdfDictionary font) { try { PdfObject toUniObject = PdfReader.getPdfObjectRelease(font.get(PdfName.TOUNICODE)); PdfArray df = (PdfArray) PdfReader.getPdfObjectRelease(font.get(PdfName.DESCENDANTFONTS)); PdfDictionary cidft = (PdfDictionary) PdfReader.getPdfObjectRelease(df.getPdfObject(0)); PdfNumber dwo = (PdfNumber) PdfReader.getPdfObjectRelease(cidft.get(PdfName.DW)); int dw = 1000; if (dwo != null) { dw = dwo.intValue(); } IntHashtable widths = readWidths((PdfArray) PdfReader.getPdfObjectRelease(cidft.get(PdfName.W))); PdfDictionary fontDesc = (PdfDictionary) PdfReader.getPdfObjectRelease(cidft.get(PdfName.FONTDESCRIPTOR)); fillFontDesc(fontDesc); if (toUniObject != null) { fillMetrics(PdfReader.getStreamBytes((PRStream) toUniObject), widths, dw); } } catch (Exception e) { throw new ExceptionConverter(e); } }
byte destProfile[] = null; if (stream != null) { destProfile = PdfReader.getStreamBytes(stream);