Beispiel #1
0
        private PdfLoadDocumentResponse HandleLoadPDF(PDFApi pdfApiInstance, PdfVersion outputVersion, FileToProcess fileToProcess, int workerNumber)
        {
            FileStream inputFileStream = null;

            try
            {
                PassportPDFParametersUtilities.GetLoadDocumentMultipartParameters(fileToProcess.FileAbsolutePath, outputVersion, out inputFileStream, out PdfConformance conformance, out string fileName);

                using (FileStream tmpFile = File.Create(Path.GetTempFileName(), 4096, FileOptions.DeleteOnClose))
                {
                    using (GZipStream dataStream = new GZipStream(tmpFile, CompressionLevel.Optimal, true))
                    {
                        inputFileStream.CopyTo(dataStream);
                        inputFileStream.Dispose();
                        inputFileStream = null;
                    }

                    tmpFile.Seek(0, SeekOrigin.Begin);

                    return(PassportPDFRequestsUtilities.SendLoadPDFMultipartRequest(pdfApiInstance, workerNumber, fileToProcess.FileAbsolutePath, fileName, conformance, fileToProcess.Password, tmpFile, ContentEncoding.Gzip, UploadOperationStartEventHandler));
                }
            }
            catch
            {
                if (inputFileStream != null)
                {
                    inputFileStream.Dispose();
                }
                throw;
            }
        }
Beispiel #2
0
        /// <summary>
        /// Version of this instance.
        /// </summary>
        /// <returns></returns>
        public PdfVersion Version()
        {
            PdfVersion version = PdfVersion.PDF1_0;

            if (this.flags >= Flag.LockedContents)
            {
                version = PdfVersion.PDF1_7;
            }
            else if (this.flags >= Flag.ToggleNoView)
            {
                version = PdfVersion.PDF1_5;
            }
            else if (this.flags >= Flag.NoRotate)
            {
                version = PdfVersion.PDF1_3;
            }
            else if (this.flags >= Flag.Hidden)
            {
                version = PdfVersion.PDF1_2;
            }
            PdfVersion version2 = this.GetVersion();

            if (version2 > version)
            {
                version = version2;
            }
            if (base.ContainsKey(PdfName.AP) && (version < PdfVersion.PDF1_2))
            {
                version = PdfVersion.PDF1_2;
            }
            return(version);
        }
Beispiel #3
0
        //--------------------------------------------------------------------------------------------------

        public PdfWriter(PdfVersion version, int lastObjectNumber)
        {
            _ObjectOffsets = new long[lastObjectNumber];
            _Stream        = new MemoryStream();

            Write($"%PDF-{(int)version / 10}.{(int)version % 10}\n"); // header
            Write("%öäüß\n");                                         // binary signature
        }
Beispiel #4
0
 public TagStructureContext(PdfDocument document, PdfVersion tagStructureTargetVersion)
 {
     this.document = document;
     if (!document.IsTagged())
     {
         throw new PdfException(PdfException.MustBeATaggedDocument);
     }
     connectedModelToStruct         = new Dictionary <IAccessibleElement, PdfStructElem>();
     connectedStructToModel         = new Dictionary <PdfDictionary, IAccessibleElement>();
     this.tagStructureTargetVersion = tagStructureTargetVersion;
     forbidUnknownRoles             = true;
     NormalizeDocumentRootTag();
 }
Beispiel #5
0
        private void RegisterRules(PdfVersion pdfVersion)
        {
            ITaggingRule tableRule = new TableTaggingRule();

            RegisterSingleRule(StandardRoles.TABLE, tableRule);
            RegisterSingleRule(StandardRoles.TFOOT, tableRule);
            RegisterSingleRule(StandardRoles.THEAD, tableRule);
            if (pdfVersion.CompareTo(PdfVersion.PDF_1_5) < 0)
            {
                TableTaggingPriorToOneFiveVersionRule priorToOneFiveRule = new TableTaggingPriorToOneFiveVersionRule();
                RegisterSingleRule(StandardRoles.TABLE, priorToOneFiveRule);
                RegisterSingleRule(StandardRoles.THEAD, priorToOneFiveRule);
                RegisterSingleRule(StandardRoles.TFOOT, priorToOneFiveRule);
            }
        }
Beispiel #6
0
        public void FromReader_ThrowsOnInvalidHeader(string header)
        {
            // Arrange

            // Act

            // Assert
            using (var pdfStream = BuildTestStream(header))
            {
                using (var reader = new PdfReader(pdfStream))
                {
                    Assert.Throws <FormatException>(() => PdfVersion.FromReader(reader));
                }
            }
        }
Beispiel #7
0
 /// <summary>
 /// Do not use this constructor, instead use
 /// <see cref="iText.Kernel.Pdf.PdfDocument.GetTagStructureContext()"/>
 /// method.
 /// </summary>
 /// <remarks>
 /// Do not use this constructor, instead use
 /// <see cref="iText.Kernel.Pdf.PdfDocument.GetTagStructureContext()"/>
 /// method.
 /// <para />
 /// Creates
 /// <c>TagStructureContext</c>
 /// for document. There shall be only one instance of this
 /// class per
 /// <c>PdfDocument</c>.
 /// </remarks>
 /// <param name="document">the document which tag structure will be manipulated with this class.</param>
 /// <param name="tagStructureTargetVersion">the version of the pdf standard to which the tag structure shall adhere.
 ///     </param>
 public TagStructureContext(PdfDocument document, PdfVersion tagStructureTargetVersion)
 {
     this.document = document;
     if (!document.IsTagged())
     {
         throw new PdfException(PdfException.MustBeATaggedDocument);
     }
     waitingTagsManager             = new WaitingTagsManager();
     namespaces                     = new LinkedHashSet <PdfDictionary>();
     nameToNamespace                = new Dictionary <String, PdfNamespace>();
     this.tagStructureTargetVersion = tagStructureTargetVersion;
     forbidUnknownRoles             = true;
     if (TargetTagStructureVersionIs2())
     {
         InitRegisteredNamespaces();
         SetNamespaceForNewTagsBasedOnExistingRoot();
     }
 }
Beispiel #8
0
        /// <summary>
        /// Version of this instance.
        /// </summary>
        /// <returns></returns>
        public PdfVersion Version()
        {
            PdfVersion version = PdfVersion.PDF1_0;

            if ((this.pageLayout == PageLayoutType.TwoPageLeft) || (this.pageLayout == PageLayoutType.TwoPageRight))
            {
                version = PdfVersion.PDF1_5;
            }
            if (this.openType == OpenType.UseOC)
            {
                version = PdfVersion.PDF1_5;
            }
            if (this.openType == OpenType.UseAttachments)
            {
                version = PdfVersion.PDF1_6;
            }
            return(version);
        }
Beispiel #9
0
        public void FromReader_ReadsPdfVersion()
        {
            // Arrange
            PdfVersion version;

            // Act
            using (var pdfStream = BuildTestStream("%PDF-1.6\r\n"))
            {
                using (var reader = new PdfReader(pdfStream))
                {
                    version = PdfVersion.FromReader(reader);
                }
            }

            // Assert
            Assert.NotNull(version);
            Assert.Equal(1, version.Major);
            Assert.Equal(6, version.Minor);
        }
Beispiel #10
0
        public void WritesPdfHeader()
        {
            // Arrange
            var    version = new PdfVersion(1, 2);
            string result;

            // Act
            using (var pdfStream = new MemoryStream())
            {
                using (var writer = new PdfWriter(pdfStream))
                {
                    version.WriteHeader(writer);
                    writer.Flush();
                    result = ReadAsString(pdfStream);
                }
            }

            // Assert
            Assert.Equal("%PDF-1.2\r\n", result);
        }
Beispiel #11
0
        public void FromReader_ReadsPdfVersionAtBeginning()
        {
            // Arrange
            PdfVersion version;

            // Act
            using (var pdfStream = BuildTestStream("%PDF-1.4\r\nSome Content\r\n%PDF-1.6\r\n"))
            {
                using (var reader = new PdfReader(pdfStream))
                {
                    reader.Position = 22;
                    version         = PdfVersion.FromReader(reader);
                }
            }

            // Assert
            Assert.NotNull(version);
            Assert.Equal(1, version.Major);
            Assert.Equal(4, version.Minor);
        }
Beispiel #12
0
 /// <summary>
 /// Writes the labeled object.
 /// </summary>
 /// <param name="obj">The obj.</param>
 protected void WriteLabeledObject(PdfObjectBase obj)
 {
     if (!this.crossTable.Contains(obj))
     {
         if (obj is IVersionDepend)
         {
             PdfVersion version = ((IVersionDepend)obj).Version();
             if (version > this.version)
             {
                 this.version        = version;
                 this.refreshVersion = true;
             }
         }
         this.crossTable.Add(new PdfFileCrossRef(obj, this.psw.Position, true));
         this.psw.WriteString(string.Format("{0} {1} ", new object[] { (int)obj.ObjectIndex, (int)obj.Generation }));
         this.psw.WriteBytes(objPrefix);
         obj.ToPdf(this);
         this.psw.WriteBytes(objSuffix);
     }
 }
Beispiel #13
0
        public static bool IsValid(byte[] bytes, out PdfVersion version)
        {
            string dummy;

            return IsValid(bytes, out version, out dummy);
        }
Beispiel #14
0
 /* ----------------------------------------------------------------- */
 ///
 /// GetEncryptionMethod
 ///
 /// <summary>
 /// Gets an EncryptionMethod value from the specified version.
 /// </summary>
 ///
 /* ----------------------------------------------------------------- */
 private EncryptionMethod GetEncryptionMethod(PdfVersion src) =>
 src.Minor >= 7 ? EncryptionMethod.Aes256 :
 src.Minor >= 6 ? EncryptionMethod.Aes128 :
 src.Minor >= 4 ? EncryptionMethod.Standard128 :
 EncryptionMethod.Standard40;
Beispiel #15
0
        private WorkflowProcessingResult ProcessWorkflow(PDFApi pdfApiInstance, ImageApi imageApiInstance, OperationsWorkflow workflow, FileToProcess fileToProcess, int workerNumber)
        {
            List <string> warningMessages = new List <string>();
            bool          contentRemoved  = false;
            bool          versionChanged  = false;
            bool          linearized      = false;
            string        fileID          = null;

            foreach (Operation operation in workflow.OperationsToBePerformed)
            {
                Error           actionError     = null;
                ReduceErrorInfo reduceErrorInfo = null;
                long            remainingTokens = 0;

                if (_cancellationPending)
                {
                    return(null);
                }

                switch (operation.Type)
                {
                case Operation.OperationType.LoadPDF:
                    PdfVersion outputVersion = (PdfVersion)operation.Parameters;
                    PdfLoadDocumentResponse loadDocumentResponse = HandleLoadPDF(pdfApiInstance, outputVersion, fileToProcess, workerNumber);
                    if (loadDocumentResponse == null)
                    {
                        OnError(LogMessagesUtils.ReplaceMessageSequencesAndReferences(FrameworkGlobals.MessagesLocalizer.GetString("message_invalid_response_received", FrameworkGlobals.ApplicationLanguage), actionName: "Load"));
                        return(null);
                    }
                    remainingTokens = loadDocumentResponse.RemainingTokens;
                    actionError     = loadDocumentResponse.Error;
                    fileID          = loadDocumentResponse.FileId;
                    break;

                case Operation.OperationType.LoadImage:
                    ImageLoadResponse imageLoadResponse = HandleLoadImage(imageApiInstance, fileToProcess, workerNumber);
                    if (imageLoadResponse == null)
                    {
                        OnError(LogMessagesUtils.ReplaceMessageSequencesAndReferences(FrameworkGlobals.MessagesLocalizer.GetString("message_invalid_response_received", FrameworkGlobals.ApplicationLanguage), actionName: "Load"));
                        return(null);
                    }
                    remainingTokens = imageLoadResponse.RemainingTokens;
                    actionError     = imageLoadResponse.Error;
                    fileID          = imageLoadResponse.FileId;
                    break;

                case Operation.OperationType.ReducePDF:
                    PDFReduceActionConfiguration reduceActionConfiguration = (PDFReduceActionConfiguration)operation.Parameters;
                    PdfReduceResponse            reduceResponse            = HandleReducePDF(pdfApiInstance, reduceActionConfiguration, fileToProcess, fileID, workerNumber, warningMessages);
                    if (reduceResponse == null)
                    {
                        OnError(LogMessagesUtils.ReplaceMessageSequencesAndReferences(FrameworkGlobals.MessagesLocalizer.GetString("message_invalid_response_received", FrameworkGlobals.ApplicationLanguage), actionName: "Reduce"));
                        return(null);
                    }
                    remainingTokens = reduceResponse.RemainingTokens;
                    contentRemoved  = reduceResponse.ContentRemoved;
                    versionChanged  = reduceResponse.VersionChanged;
                    actionError     = reduceResponse.Error;
                    reduceErrorInfo = reduceResponse.ErrorInfo;
                    linearized      = reduceActionConfiguration.FastWebView;
                    break;

                case Operation.OperationType.OCRPDF:
                    PDFOCRActionConfiguration ocrActionConfiguration = (PDFOCRActionConfiguration)operation.Parameters;
                    PdfOCRResponse            ocrResponse            = HandleOCRPDF(pdfApiInstance, ocrActionConfiguration, fileToProcess, fileID, workerNumber);
                    if (ocrResponse == null)
                    {
                        OnError(LogMessagesUtils.ReplaceMessageSequencesAndReferences(FrameworkGlobals.MessagesLocalizer.GetString("message_invalid_response_received", FrameworkGlobals.ApplicationLanguage), actionName: "OCR"));
                        return(null);
                    }
                    remainingTokens = ocrResponse.RemainingTokens;
                    actionError     = ocrResponse.Error;
                    break;
                }

                if (actionError != null)
                {
                    string errorMessage = reduceErrorInfo != null && reduceErrorInfo.ErrorCode != ReduceErrorCode.OK ? ErrorManager.GetMessageFromReduceActionError(reduceErrorInfo, fileToProcess.FileAbsolutePath) : ErrorManager.GetMessageFromPassportPDFError(actionError, operation.Type, fileToProcess.FileAbsolutePath);
                    OnError(errorMessage);
                    return(null);
                }
                else
                {
                    RemainingTokensUpdateEventHandler.Invoke(remainingTokens);
                }
            }


            return(new WorkflowProcessingResult(contentRemoved, versionChanged, linearized, fileID, warningMessages));
        }
Beispiel #16
0
        public void Ctor_WhenCalledWithValidVersion_ShouldCreateInstance(int version)
        {
            var sut = new PdfVersion(version);

            Assert.Equal(version, sut.Number);
        }
Beispiel #17
0
        public void ToString_WhenCalled_ShouldFormatString(int version, string str)
        {
            var sut = new PdfVersion(version);

            Assert.Equal(str, sut.ToString());
        }
Beispiel #18
0
        public static bool IsValid(byte[] bytes, out PdfVersion version, out string errorMessage)
        {
            version = PdfVersion.Unknown;

            if (bytes == null)
                throw new ArgumentNullException("bytes");

            if (bytes.Length < 8)
            {
                errorMessage = "file to short.";
                return false;
            }

            // Check if file begins with '%PDF-'
            if (!bytes.Take(5).SequenceEqual(PDFBEGINBYTES))
            {
                errorMessage = "Missing start-of-file mark.";
                return false;
            }

            if (bytes[5] == 0x31 && bytes[6] == 0x2E && bytes[7] == 0x31) // version is 1.2 ?
            {
                version = PdfVersion.Pdf1_0;
            }
            else if (bytes[5] == 0x31 && bytes[6] == 0x2E && bytes[7] == 0x31) // version is 1.2 ?
            {
                version = PdfVersion.Pdf1_1;
            }
            else if (bytes[5] == 0x31 && bytes[6] == 0x2E && bytes[7] == 0x32) // version is 1.2 ?
            {
                version = PdfVersion.Pdf1_2;

                if (!bytes.Skip(bytes.Length - 7).SequenceEqual(PDF12ENDBYTES1)
                    && !bytes.Skip(bytes.Length - 6).SequenceEqual(PDF12ENDBYTES2))
                {
                    errorMessage = "PDF-1.2 missing End-Of-File mark.";
                    return false;
                }
            }
            else if (bytes[5] == 0x31 && bytes[6] == 0x2E && bytes[7] == 0x33) // version is 1.3 ?
            {
                version = PdfVersion.Pdf1_3;
            }
            else if (bytes[5] == 0x31 && bytes[6] == 0x2E && bytes[7] == 0x34) // version is 1.4 ?
            {
                version = PdfVersion.Pdf1_4;
            }
            else if (bytes[5] == 0x31 && bytes[6] == 0x2E && bytes[7] == 0x35) // version is 1.4 ?
            {
                version = PdfVersion.Pdf1_5;
            }
            else if (bytes[5] == 0x31 && bytes[6] == 0x2E && bytes[7] == 0x36) // version is 1.4 ?
            {
                version = PdfVersion.Pdf1_6;
            }
            else if (bytes[5] == 0x31 && bytes[6] == 0x2E && bytes[7] == 0x37) // version is 1.4 ?
            {
                version = PdfVersion.Pdf1_7;
            }
            else
            {
                errorMessage = "Unknown or unsupported PDF Version.";
                return false;
            }

            // Some PDF files have NULLs at the end, let's skip them.
            int lenWithOutPadding = bytes.Reverse().SkipWhile(x => x == 0x0).Count();

            if (!PDF_EOFS.Any(x => bytes.Take(lenWithOutPadding).Skip(lenWithOutPadding - x.Length).SequenceEqual(x)))
            {
                errorMessage = "Missing End-Of-File mark.";
                return false;
            }

            errorMessage = null;
            return true;
        }
Beispiel #19
0
 public StandardHandlerUsingAes256(PdfDictionary encryptionDictionary, byte[] userPassword, byte[] ownerPassword
                                   , int permissions, bool encryptMetadata, bool embeddedFilesOnly, PdfVersion version)
 {
     isPdf2 = version != null && version.CompareTo(PdfVersion.PDF_2_0) >= 0;
     InitKeyAndFillDictionary(encryptionDictionary, userPassword, ownerPassword, permissions, encryptMetadata,
                              embeddedFilesOnly);
 }
Beispiel #20
0
        public static bool IsValid(byte[] bytes, out PdfVersion version, out string errorMessage)
        {
            version = PdfVersion.Unknown;

            if (bytes == null)
            {
                throw new ArgumentNullException("bytes");
            }

            if (bytes.Length < 8)
            {
                errorMessage = "file to short.";
                return(false);
            }

            // Check if file begins with '%PDF-'
            if (!bytes.Take(5).SequenceEqual(PDFBEGINBYTES))
            {
                errorMessage = "Missing start-of-file mark.";
                return(false);
            }

            if (bytes[5] == 0x31 && bytes[6] == 0x2E && bytes[7] == 0x31)             // version is 1.2 ?
            {
                version = PdfVersion.Pdf1_0;
            }
            else if (bytes[5] == 0x31 && bytes[6] == 0x2E && bytes[7] == 0x31)             // version is 1.2 ?
            {
                version = PdfVersion.Pdf1_1;
            }
            else if (bytes[5] == 0x31 && bytes[6] == 0x2E && bytes[7] == 0x32)             // version is 1.2 ?
            {
                version = PdfVersion.Pdf1_2;

                if (!bytes.Skip(bytes.Length - 7).SequenceEqual(PDF12ENDBYTES1) &&
                    !bytes.Skip(bytes.Length - 6).SequenceEqual(PDF12ENDBYTES2))
                {
                    errorMessage = "PDF-1.2 missing End-Of-File mark.";
                    return(false);
                }
            }
            else if (bytes[5] == 0x31 && bytes[6] == 0x2E && bytes[7] == 0x33)             // version is 1.3 ?
            {
                version = PdfVersion.Pdf1_3;
            }
            else if (bytes[5] == 0x31 && bytes[6] == 0x2E && bytes[7] == 0x34)             // version is 1.4 ?
            {
                version = PdfVersion.Pdf1_4;
            }
            else if (bytes[5] == 0x31 && bytes[6] == 0x2E && bytes[7] == 0x35)             // version is 1.4 ?
            {
                version = PdfVersion.Pdf1_5;
            }
            else if (bytes[5] == 0x31 && bytes[6] == 0x2E && bytes[7] == 0x36)             // version is 1.4 ?
            {
                version = PdfVersion.Pdf1_6;
            }
            else if (bytes[5] == 0x31 && bytes[6] == 0x2E && bytes[7] == 0x37)             // version is 1.4 ?
            {
                version = PdfVersion.Pdf1_7;
            }
            else
            {
                errorMessage = "Unknown or unsupported PDF Version.";
                return(false);
            }

            // Some PDF files have NULLs at the end, let's skip them.
            int lenWithOutPadding = bytes.Reverse().SkipWhile(x => x == 0x0).Count();

            if (!PDF_EOFS.Any(x => bytes.Take(lenWithOutPadding).Skip(lenWithOutPadding - x.Length).SequenceEqual(x)))
            {
                errorMessage = "Missing End-Of-File mark.";
                return(false);
            }

            errorMessage = null;
            return(true);
        }
Beispiel #21
0
        public static bool IsValid(byte[] bytes, out PdfVersion version)
        {
            string dummy;

            return(IsValid(bytes, out version, out dummy));
        }
Beispiel #22
0
        /// <summary>
        /// Initializes a new instance of the <see cref="T:PdfImage" /> class.
        /// </summary>
        /// <param name="image">The image.</param>
        /// <param name="maskImage">The mask image.</param>
        public PdfImage(Image image, PdfImage maskImage)
        {
            if (image == null)
            {
                throw new PdfArgumentNullException("image");
            }
            base.Properties.Add(PdfName.Type, PdfName.XObject);
            base.Properties.Add(PdfName.Subtype, PdfName.Image);
            base.Properties.Add(PdfName.Width, new PdfNumber((double)image.Width));
            base.Properties.Add(PdfName.Height, new PdfNumber((double)image.Height));
            if (image.Mask && ((image.Bpc == 1) || (image.Bpc > 0xff)))
            {
                base.Properties.Add(PdfName.ImageMask, PdfBool.TRUE);
            }
            if (maskImage != null)
            {
                if (image.Smask)
                {
                    base.Properties.Add(PdfName.SMask, maskImage);
                    this.version = PdfVersion.PDF1_4;
                }
                else
                {
                    base.Properties.Add(PdfName.Mask, maskImage);
                    this.version = PdfVersion.PDF1_3;
                }
            }
            if (image is RawImage)
            {
                base.Data.Write(image.RawData, 0, image.RawData.Length);
                int[] transparency = image.Transparency;
                if (transparency != null)
                {
                    PdfArray array = PdfArray.Convert(transparency);
                    base.Properties.Add(PdfName.Mask, array);
                }
                if (image.Bpc <= 0xff)
                {
                    switch (image.Colorspace)
                    {
                    case 1:
                        base.Properties.Add(PdfName.ColorSpace, PdfName.DeviceGray);
                        break;

                    case 3:
                        base.Properties.Add(PdfName.ColorSpace, PdfName.DeviceRGB);
                        break;

                    default:
                        base.Properties.Add(PdfName.ColorSpace, PdfName.DeviceCMYK);
                        break;
                    }
                    if (image.Properties != null)
                    {
                        foreach (KeyValuePair <PdfName, PdfObjectBase> pair in image.Properties)
                        {
                            base.Properties[pair.Key] = pair.Value;
                        }
                    }
                    base.Properties.Add(PdfName.BitsPerComponent, new PdfNumber((double)image.Bpc));
                    if (image.Deflated)
                    {
                        base.Filters.Enqueue(MockFilter.FlateFilter);
                        return;
                    }
                    bool flag = false;
                    foreach (PdfFilter filter in base.Filters)
                    {
                        if (filter is FlateFilter)
                        {
                            flag = true;
                            break;
                        }
                    }
                    if (!flag)
                    {
                        base.Filters.Enqueue(PdfFilter.FlateFilter);
                    }
                }
                return;
            }
            else
            {
                ImageType type = image.Type;
                if ((type != ImageType.JPEG) && (type != ImageType.JPEG2000))
                {
                    throw new PdfUnrecognizedImageFormatException("Not a recognized Image Format.");
                }
                base.Filters.Enqueue((image.Type == ImageType.JPEG) ? MockFilter.DCTFilter : MockFilter.JPXFilter);
                if (image.Type == ImageType.JPEG2000)
                {
                    this.version = PdfVersion.PDF1_5;
                }
                if (image.Colorspace <= 0)
                {
                    goto Label_034F;
                }
                switch (image.Colorspace)
                {
                case 1:
                    base.Properties.Add(PdfName.ColorSpace, PdfName.DeviceGray);
                    goto Label_0333;

                case 3:
                    base.Properties.Add(PdfName.ColorSpace, PdfName.DeviceRGB);
                    goto Label_0333;
                }
                base.Properties.Add(PdfName.ColorSpace, PdfName.DeviceCMYK);
            }
Label_0333:
            base.Properties.Add(PdfName.BitsPerComponent, new PdfNumber((double)image.Bpc));
Label_034F:
            if (image.RawData != null)
            {
                base.Data.Write(image.RawData, 0, image.RawData.Length);
            }
        }