コード例 #1
0
ファイル: PdfDocument.cs プロジェクト: yourowndeath/PdfParser
        /// <summary>Заполняет список объектов документа</summary>
        private static void FillObjects()
        {
            var position = PdfFunctions.GetPosition(_documentBytes, 0, PdfConsts.PDF_TRAILER);

            position = PdfFunctions.GetPosition(_documentBytes, position, PdfConsts.PDF_SIZE) + 1;
            var value    = PdfFunctions.GetValue(_documentBytes, position, PdfConsts.PDF_BACKSLASH);
            var objCount = Convert.ToInt32(value);

            for (var i = 1; i < objCount; i++)
            {
                var name = i.ToString(CultureInfo.InvariantCulture) + " 0 " + PdfConsts.PDF_OBJECT;
                var data = PdfFunctions.GetObjectData(_documentBytes, 0, name);
                if (data == null)
                {
                    continue;
                }

                var type = GetObjectType(data);
                if (type == PdfObjectType.Page)
                {
                    Pages.Add(new PdfPage(name, data));
                }
                else
                {
                    Objects.Add(new PdfObject(name, data, type));
                }
            }
        }
コード例 #2
0
ファイル: PdfDocument.cs プロジェクト: yourowndeath/PdfParser
        /// <summary>Возвращает версию Pdf-документа</summary>
        /// <returns>Версия pdf-документа</returns>
        private static decimal GetVersion()
        {
            var pos = PdfFunctions.GetPosition(_documentBytes, 0, PdfConsts.PDF_VERSION) + 1;

            if (pos == -1)
            {
                return(0);
            }

            var value = PdfFunctions.GetValue(_documentBytes, pos, PdfConsts.PDF_RETURN);

            return(Convert.ToDecimal(value, CultureInfo.InvariantCulture));
        }