iTextSharp.text.pdf.PdfReader.GetStreamBytes C# (CSharp) Method

GetStreamBytes() public static method

public static GetStreamBytes ( PRStream stream, RandomAccessFileOrArray file ) : byte[]
stream PRStream
file RandomAccessFileOrArray
return byte[]
        public static byte[] GetStreamBytes(PRStream stream, RandomAccessFileOrArray file) {
            PdfObject filter = GetPdfObjectRelease(stream.Get(PdfName.FILTER));
            byte[] b = GetStreamBytesRaw(stream, file);
            ArrayList filters = new ArrayList();
            if (filter != null) {
                if (filter.IsName())
                    filters.Add(filter);
                else if (filter.IsArray())
                    filters = ((PdfArray)filter).ArrayList;
            }
            ArrayList dp = new ArrayList();
            PdfObject dpo = GetPdfObjectRelease(stream.Get(PdfName.DECODEPARMS));
            if (dpo == null || (!dpo.IsDictionary() && !dpo.IsArray()))
                dpo = GetPdfObjectRelease(stream.Get(PdfName.DP));
            if (dpo != null) {
                if (dpo.IsDictionary())
                    dp.Add(dpo);
                else if (dpo.IsArray())
                    dp = ((PdfArray)dpo).ArrayList;
            }
            String name;
            for (int j = 0; j < filters.Count; ++j) {
                name = ((PdfName)GetPdfObjectRelease((PdfObject)filters[j])).ToString();
                if (name.Equals("/FlateDecode") || name.Equals("/Fl")) {
                    b = FlateDecode(b);
                    PdfObject dicParam = null;
                    if (j < dp.Count) {
                        dicParam = (PdfObject)dp[j];
                        b = DecodePredictor(b, dicParam);
                    }
                }
                else if (name.Equals("/ASCIIHexDecode") || name.Equals("/AHx"))
                    b = ASCIIHexDecode(b);
                else if (name.Equals("/ASCII85Decode") || name.Equals("/A85"))
                    b = ASCII85Decode(b);
                else if (name.Equals("/LZWDecode")) {
                    b = LZWDecode(b);
                    PdfObject dicParam = null;
                    if (j < dp.Count) {
                        dicParam = (PdfObject)dp[j];
                        b = DecodePredictor(b, dicParam);
                    }
                }
                else if (name.Equals("/Crypt")) {
                }
                else
                    throw new UnsupportedPdfException("The filter " + name + " is not supported.");
            }
            return b;
        }
        

Same methods

PdfReader::GetStreamBytes ( PRStream stream ) : byte[]

Usage Example

コード例 #1
0
ファイル: DocumentFont.cs プロジェクト: mohsenmetn/itextsharp
        private CMapToUnicode ProcessToUnicode()
        {
            CMapToUnicode cmapRet = null;
            PdfObject     toUni   = PdfReader.GetPdfObjectRelease(this.font.Get(PdfName.TOUNICODE));

            if (toUni is PRStream)
            {
                try {
                    byte[] touni           = PdfReader.GetStreamBytes((PRStream)toUni);
                    CidLocationFromByte lb = new CidLocationFromByte(touni);
                    cmapRet = new CMapToUnicode();
                    CMapParserEx.ParseCid("", cmapRet, lb);
                } catch {
                    cmapRet = null;
                }
            }
            return(cmapRet);
        }
All Usage Examples Of iTextSharp.text.pdf.PdfReader::GetStreamBytes