iTextSharp.text.pdf.parser.ContentByteUtils.GetContentBytesFromContentObject C# (CSharp) Метод

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

public static GetContentBytesFromContentObject ( PdfObject contentObject ) : byte[]
contentObject iTextSharp.text.pdf.PdfObject
Результат byte[]
        public static byte[] GetContentBytesFromContentObject(PdfObject contentObject)
        {
            byte[] result;
            switch (contentObject.Type)
            {
                case PdfObject.INDIRECT:
                    PRIndirectReference refi = (PRIndirectReference) contentObject;
                    PdfObject directObject = PdfReader.GetPdfObject(refi);
                    result = GetContentBytesFromContentObject(directObject);
                    break;
                case PdfObject.STREAM:
                    PRStream stream = (PRStream) PdfReader.GetPdfObject(contentObject);
                    result = PdfReader.GetStreamBytes(stream);
                    break;
                case PdfObject.ARRAY:
                    // Stitch together all content before calling ProcessContent(), because
                    // ProcessContent() resets state.
                    MemoryStream allBytes = new MemoryStream();
                    PdfArray contentArray = (PdfArray) contentObject;
                    ListIterator<PdfObject> iter = contentArray.GetListIterator();
                    while (iter.HasNext()) {
                        PdfObject element = iter.Next();
                        byte[] b;
                        allBytes.Write(b = GetContentBytesFromContentObject(element), 0, b.Length);
                        allBytes.WriteByte((byte)' ');
                    }
                    result = allBytes.ToArray();
                    break;
                default:
                    String msg = "Unable to handle Content of type " + contentObject.GetType();
                throw new InvalidOperationException(msg);
            }
            return result;
        }

Usage Example

Пример #1
0
        /**
         * Displays a summary of the entries in the XObject dictionary for the stream
         * @param resourceDic the resource dictionary for the stream
         * @return a string with the summary of the entries
         * @throws IOException
         * @since 5.0.2
         */
        public static String GetXObjectDetail(PdfDictionary resourceDic)
        {
            StringBuilder sb = new StringBuilder();

            PdfDictionary xobjects = resourceDic.GetAsDict(PdfName.XOBJECT);

            if (xobjects == null)
            {
                return("No XObjects");
            }
            foreach (PdfName entryName in xobjects.Keys)
            {
                PdfStream xobjectStream = xobjects.GetAsStream(entryName);

                sb.Append("------ " + entryName + " - subtype = " + xobjectStream.Get(PdfName.SUBTYPE) + " = " + xobjectStream.GetAsNumber(PdfName.LENGTH) + " bytes ------\n");

                if (!xobjectStream.Get(PdfName.SUBTYPE).Equals(PdfName.IMAGE))
                {
                    byte[] contentBytes = ContentByteUtils.GetContentBytesFromContentObject(xobjectStream);

                    foreach (byte b in contentBytes)
                    {
                        sb.Append((char)b);
                    }

                    sb.Append("------ " + entryName + " - subtype = " + xobjectStream.Get(PdfName.SUBTYPE) + "End of Content" + "------\n");
                }
            }

            return(sb.ToString());
        }
All Usage Examples Of iTextSharp.text.pdf.parser.ContentByteUtils::GetContentBytesFromContentObject