/// <summary>
 /// Retrieves the raw data for the colorspace.
 /// </summary>
 /// <returns>The raw data from the PdfArray of PdfReference.</returns>
 protected virtual IEnumerable<byte> GetRawPalette(PdfItem item)
 {
   // The palette data is directly imbedded.
   if (item.IsArray()) return(GetRawPalette(item as PdfArray));
   if (item.IsReference()) return (GetRawPalette(item as PdfReference));
   if (item is PdfString pdfString) return new RawEncoding().GetBytes(pdfString.Value);
 
   throw new ArgumentException("The specified palette information was incorrect.", "item");
 }
 /// <summary>
 /// Get's the colorspace name for the specified item.
 /// </summary>
 /// <param name="colorSpace">The colorspace to inspect.</param>
 /// <returns>The PdfName of the specified item.</returns>
 private static string GetColorSpaceName(PdfItem colorSpace)
 {
   if (colorSpace == null) return(null);
   if (colorSpace.IsArray()) return (GetColorSpaceName(((PdfArray)colorSpace).Elements[0]));
   if (colorSpace.IsName()) return (((PdfName) colorSpace).Value);
   if (colorSpace.IsReference()) {
     PdfReference reference = (colorSpace as PdfReference);
     if (reference != null) {
       return (GetColorSpaceName(reference.Value));
     }
   }
   return (null);
 }
            /// <summary>
            /// Retrieves the raw data for the colorspace.
            /// </summary>
            /// <returns>The raw data from the PdfArray of PdfReference.</returns>
            protected virtual IEnumerable <byte> GetRawPalette(PdfItem item)
            {
                // The palette data is directly imbedded.
                if (item.IsArray())
                {
                    return(GetRawPalette(item as PdfArray));
                }
                if (item.IsReference())
                {
                    return(GetRawPalette(item as PdfReference));
                }

                throw new ArgumentException("The specified palette information was incorrect.", "item");
            }
 /// <summary>
 /// Get's the colorspace name for the specified item.
 /// </summary>
 /// <param name="colorSpace">The colorspace to inspect.</param>
 /// <returns>The PdfName of the specified item.</returns>
 private static string GetColorSpaceName(PdfItem colorSpace)
 {
   if (colorSpace == null) return(null);
   if (colorSpace.IsArray()) return (GetColorSpaceName(((PdfArray)colorSpace).Elements[0]));
   if (colorSpace.IsName()) return (((PdfName) colorSpace).Value);
   if (colorSpace.IsReference()) {
     PdfReference reference = (colorSpace as PdfReference);
     if (reference != null) {
       return (GetColorSpaceName(reference.Value));
     }
   }
   return (null);
 }
 /// <summary>
 /// Retrieves the raw data for the colorspace.
 /// </summary>
 /// <returns>The raw data from the PdfArray of PdfReference.</returns>
 protected virtual IEnumerable<byte> GetRawPalette(PdfItem item)
 {
   // The palette data is directly imbedded.
   if (item.IsArray()) return(GetRawPalette(item as PdfArray));
   if (item.IsReference()) return (GetRawPalette(item as PdfReference));
 
   throw new ArgumentException("The specified palette information was incorrect.", "item");
 }