コード例 #1
0
        public virtual Rectangle GetPageSize()
        {
            PdfArray box = GetPdfObject().GetAsArray(PdfName.MediaBox);

            if (box == null || box.Size() != 4)
            {
                throw new ArgumentException("MediaBox");
            }
            PdfNumber llx = box.GetAsNumber(0);
            PdfNumber lly = box.GetAsNumber(1);
            PdfNumber urx = box.GetAsNumber(2);
            PdfNumber ury = box.GetAsNumber(3);

            if (llx == null || lly == null || urx == null || ury == null)
            {
                throw new ArgumentException("MediaBox");
            }
            return(new Rectangle(Math.Min(llx.FloatValue(), urx.FloatValue()), Math.Min(lly.FloatValue(), ury.FloatValue
                                                                                            ()), Math.Abs(urx.FloatValue() - llx.FloatValue()), Math.Abs(ury.FloatValue() - lly.FloatValue())));
        }
コード例 #2
0
ファイル: PdfNumTree.cs プロジェクト: amitdumka/itext7-dotnet
        private PdfNumber IterateItems(PdfDictionary dictionary, PdfNumber leftOver)
        {
            PdfArray nums = dictionary.GetAsArray(PdfName.Nums);

            if (nums != null)
            {
                for (int k = 0; k < nums.Size(); k++)
                {
                    PdfNumber number;
                    if (leftOver == null)
                    {
                        number = nums.GetAsNumber(k++);
                    }
                    else
                    {
                        number   = leftOver;
                        leftOver = null;
                    }
                    if (k < nums.Size())
                    {
                        items.Put(number.IntValue(), nums.Get(k));
                    }
                    else
                    {
                        return(number);
                    }
                }
            }
            else
            {
                if ((nums = dictionary.GetAsArray(PdfName.Kids)) != null)
                {
                    for (int k = 0; k < nums.Size(); k++)
                    {
                        PdfDictionary kid = nums.GetAsDictionary(k);
                        leftOver = IterateItems(kid, leftOver);
                    }
                }
            }
            return(null);
        }