コード例 #1
0
ファイル: File.cs プロジェクト: evertop/PDFClown
        public File(
            IInputStream stream
            )
        {
            Initialize();

            reader = new Reader(stream, this);
            try // [FIX:45] File constructor didn't dispose reader on error.
            {
                Reader.FileInfo info = reader.ReadInfo();
                version = info.Version;
                trailer = PrepareTrailer(info.Trailer);
                if (trailer.ContainsKey(PdfName.Encrypt)) // Encrypted file.
                {
                    throw new NotImplementedException("Encrypted files are currently not supported.");
                }

                indirectObjects        = new IndirectObjects(this, info.XrefEntries);
                document               = new Document(trailer[PdfName.Root]);
                Configuration.XRefMode = (PdfName.XRef.Equals(trailer[PdfName.Type])
          ? XRefModeEnum.Compressed
          : XRefModeEnum.Plain);
            }
            catch (Exception)
            {
                reader.Dispose();
                throw;
            }
        }
コード例 #2
0
ファイル: File.cs プロジェクト: systembugtj/bookasa
        public File(
            IInputStream stream
            )
        {
            reader = new Reader(stream, this);

            Reader.FileInfo info = reader.ReadInfo();
            version = info.Version;
            trailer = info.Trailer;
            if (trailer.ContainsKey(PdfName.Encrypt)) // Encrypted file.
            {
                throw new NotImplementedException("Encrypted files are currently not supported.");
            }

            indirectObjects = new IndirectObjects(this, info.XrefEntries);
            document        = new Document(trailer[PdfName.Root]);
            document.Configuration.XrefMode = (PdfName.XRef.Equals(trailer[PdfName.Type]) ? Document.Config.XRefModeEnum.Compressed : Document.Config.XRefModeEnum.Plain);
        }
コード例 #3
0
ファイル: File.cs プロジェクト: alexandrvslv/pdf-clown
        public File(IInputStream stream)
        {
            Initialize();

            reader = new Reader(stream, this);
            try // [FIX:45] File constructor didn't dispose reader on error.
            {
                Reader.FileInfo info = reader.ReadInfo();
                version         = info.Version;
                trailer         = PrepareTrailer(info.Trailer);
                indirectObjects = new IndirectObjects(this, info.XrefEntries);

                reader.PrepareDecryption();

                var documentReference = trailer[PdfName.Root];
                if (documentReference.Resolve() is PdfDictionary)
                {
                    document = new Document(documentReference);
                }
                else
                {
                    foreach (var inderectObject in indirectObjects)
                    {
                        var entry = inderectObject.Resolve();
                        if (entry is PdfDictionary entryDictionary &&
                            entryDictionary[PdfName.Pages] != null)
                        {
                            document = new Document(entry.Reference);
                        }
                    }
                }
                Configuration.XRefMode = (PdfName.XRef.Equals(trailer[PdfName.Type])
                  ? XRefModeEnum.Compressed
                  : XRefModeEnum.Plain);
            }
            catch (Exception)
            {
                reader.Dispose();
                throw;
            }
        }