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

GetStreamBytesRaw() public static method

public static GetStreamBytesRaw ( PRStream stream, RandomAccessFileOrArray file ) : byte[]
stream PRStream
file RandomAccessFileOrArray
return byte[]
        public static byte[] GetStreamBytesRaw(PRStream stream, RandomAccessFileOrArray file) {
            PdfReader reader = stream.Reader;
            byte[] b;
            if (stream.Offset < 0)
                b = stream.GetBytes();
            else {
                b = new byte[stream.Length];
                file.Seek(stream.Offset);
                file.ReadFully(b);
                PdfEncryption decrypt = reader.Decrypt;
                if (decrypt != null) {
                    PdfObject filter = GetPdfObjectRelease(stream.Get(PdfName.FILTER));
                    ArrayList filters = new ArrayList();
                    if (filter != null) {
                        if (filter.IsName())
                            filters.Add(filter);
                        else if (filter.IsArray())
                            filters = ((PdfArray)filter).ArrayList;
                    }
                    bool skip = false;
                    for (int k = 0; k < filters.Count; ++k) {
                        PdfObject obj = GetPdfObjectRelease((PdfObject)filters[k]);
                        if (obj != null && obj.ToString().Equals("/Crypt")) {
                            skip = true;
                            break;
                        }
                    }
                    if (!skip) {
                        decrypt.SetHashKey(stream.ObjNum, stream.ObjGen);
                        b = decrypt.DecryptByteArray(b);
                    }
                }
            }
            return b;
        }
        

Same methods

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

Usage Example

コード例 #1
0
ファイル: PRStream.cs プロジェクト: mbarylsk/pdf-tools
        public override void ToPdf(PdfWriter writer, Stream os)
        {
            byte[]        b      = PdfReader.GetStreamBytesRaw(this);
            PdfEncryption crypto = null;

            if (writer != null)
            {
                crypto = writer.Encryption;
            }
            PdfObject objLen = Get(PdfName.LENGTH);
            int       nn     = b.Length;

            if (crypto != null)
            {
                nn = crypto.CalculateStreamSize(nn);
            }
            Put(PdfName.LENGTH, new PdfNumber(nn));
            SuperToPdf(writer, os);
            Put(PdfName.LENGTH, objLen);
            os.Write(STARTSTREAM, 0, STARTSTREAM.Length);
            if (length > 0)
            {
                if (crypto != null && !crypto.IsEmbeddedFilesOnly())
                {
                    b = crypto.EncryptByteArray(b);
                }
                os.Write(b, 0, b.Length);
            }
            os.Write(ENDSTREAM, 0, ENDSTREAM.Length);
        }
All Usage Examples Of iTextSharp.text.pdf.PdfReader::GetStreamBytesRaw