iTextSharp.text.pdf.PdfReader.GetPdfObject C# (CSharp) Метод

GetPdfObject() публичный статический метод

public static GetPdfObject ( PdfObject obj ) : PdfObject
obj PdfObject
Результат PdfObject
        public static PdfObject GetPdfObject(PdfObject obj) {
            if (obj == null)
                return null;
            if (!obj.IsIndirect())
                return obj;
            PRIndirectReference refi = (PRIndirectReference)obj;
            int idx = refi.Number;
            bool appendable = refi.Reader.appendable;
            obj = refi.Reader.GetPdfObject(idx);
            if (obj == null) {
                return null;
            }
            else {
                if (appendable) {
                    switch (obj.Type) {
                        case PdfObject.NULL:
                            obj = new PdfNull();
                            break;
                        case PdfObject.BOOLEAN:
                            obj = new PdfBoolean(((PdfBoolean)obj).BooleanValue);
                            break;
                        case PdfObject.NAME:
                            obj = new PdfName(obj.GetBytes());
                            break;
                    }
                    obj.IndRef = refi;
                }
                return obj;
            }
        }
        

Same methods

PdfReader::GetPdfObject ( PdfObject obj, PdfObject parent ) : PdfObject
PdfReader::GetPdfObject ( int idx ) : PdfObject

Usage Example

Пример #1
1
        //-------------------------------------------------------------------------
        private bool ExtractImages(String PDFSourcePath, Audit sourceAudit, out Exception exception)
        {
            //List<System.Drawing.Image> ImgList = new List<System.Drawing.Image>();

            exception = null;
            iTextSharp.text.pdf.RandomAccessFileOrArray RAFObj = null;
            iTextSharp.text.pdf.PdfReader PDFReaderObj = null;
            iTextSharp.text.pdf.PdfObject PDFObj = null;
            iTextSharp.text.pdf.PdfStream PDFStremObj = null;
            int pageNumber = 0;
            bool ok = false;
            try
            {
                RAFObj = new iTextSharp.text.pdf.RandomAccessFileOrArray(PDFSourcePath);
                PDFReaderObj = new iTextSharp.text.pdf.PdfReader(RAFObj, null);
                for (int i = 0; i < PDFReaderObj.XrefSize; i++)
                {
                    PDFObj = PDFReaderObj.GetPdfObject(i);

                    if ((PDFObj != null) && PDFObj.IsStream())
                    {
                        PDFStremObj = (iTextSharp.text.pdf.PdfStream)PDFObj;
                        iTextSharp.text.pdf.PdfObject subtype = PDFStremObj.Get(iTextSharp.text.pdf.PdfName.SUBTYPE);

                        if ((subtype != null) && subtype.ToString() == iTextSharp.text.pdf.PdfName.IMAGE.ToString())
                        {
                            try
                            {
                                iTextSharp.text.pdf.parser.PdfImageObject PdfImageObj =
                         new iTextSharp.text.pdf.parser.PdfImageObject((iTextSharp.text.pdf.PRStream)PDFStremObj);

                                System.Drawing.Image ImgPDF = PdfImageObj.GetDrawingImage();
                                pageNumber++;
                                if (pageNumber > PDFReaderObj.NumberOfPages)
                                    return false;
                            }
                            catch (Exception)
                            {
                            }
                        }
                    }
                }
                pageNumber = 0;
                PageCount = PDFReaderObj.NumberOfPages;
                for (int i = 0; i < PDFReaderObj.XrefSize; i++)
                {
                    PDFObj = PDFReaderObj.GetPdfObject(i);

                    if ((PDFObj != null) && PDFObj.IsStream())
                    {
                        PDFStremObj = (iTextSharp.text.pdf.PdfStream)PDFObj;
                        iTextSharp.text.pdf.PdfObject subtype = PDFStremObj.Get(iTextSharp.text.pdf.PdfName.SUBTYPE);

                        if ((subtype != null) && subtype.ToString() == iTextSharp.text.pdf.PdfName.IMAGE.ToString())
                        {
                            try
                            {
                                iTextSharp.text.pdf.parser.PdfImageObject PdfImageObj =
                         new iTextSharp.text.pdf.parser.PdfImageObject((iTextSharp.text.pdf.PRStream)PDFStremObj);

                                System.Drawing.Image ImgPDF = PdfImageObj.GetDrawingImage();
                                pageNumber++;
                                //using (Bitmap bmp = new Bitmap(ImgPDF))
                                //{
                                //    SaveFrameFiles(PDFSourcePath, sourceAudit, bmp, pageNumber, PageCount);
                                try
                                {
                                    SaveFrameFiles(PDFSourcePath, sourceAudit, (Bitmap)ImgPDF, pageNumber, PageCount);
                                }
                                catch (Exception)
                                {
                                    ImgPDF.Dispose();
                                    continue;
                                }
                                ImgPDF.Dispose();
                                ok = true;
                                //}
                            }
                            catch (Exception)
                            { }
                        }
                    }
                }
                return ok;
            }
            catch (Exception)// ex
            {
                //log.LogMessage(PDFSourcePath + " Page" + pageNumber.ToString() + " ", ex);
                return false;
            }
            finally
            {
                PDFReaderObj.Close();
                PDFReaderObj.Dispose();
            }
        }
All Usage Examples Of iTextSharp.text.pdf.PdfReader::GetPdfObject