Exemplo n.º 1
0
        internal override NSMutableDictionary ToDictionary()
        {
            var ret = base.ToDictionary();

            if (Title != null)
            {
                ret.LowlevelSetObject((NSString)Title, kCGPDFContextTitle);
            }
            if (Author != null)
            {
                ret.LowlevelSetObject((NSString)Author, kCGPDFContextAuthor);
            }
            if (Subject != null)
            {
                ret.LowlevelSetObject((NSString)Subject, kCGPDFContextSubject);
            }
            if (Keywords != null && Keywords.Length > 0)
            {
                if (Keywords.Length == 1)
                {
                    ret.LowlevelSetObject((NSString)Keywords [0], kCGPDFContextKeywords);
                }
                else
                {
                    ret.LowlevelSetObject(NSArray.FromStrings(Keywords), kCGPDFContextKeywords);
                }
            }
            if (Creator != null)
            {
                ret.LowlevelSetObject((NSString)Creator, kCGPDFContextCreator);
            }
            if (OwnerPassword != null)
            {
                ret.LowlevelSetObject((NSString)OwnerPassword, kCGPDFContextOwnerPassword);
            }
            if (UserPassword != null)
            {
                ret.LowlevelSetObject((NSString)UserPassword, kCGPDFContextUserPassword);
            }
            if (EncryptionKeyLength.HasValue)
            {
                ret.LowlevelSetObject(NSNumber.FromInt32(EncryptionKeyLength.Value), kCGPDFContextEncryptionKeyLength);
            }
            if (AllowsPrinting.HasValue && AllowsPrinting.Value == false)
            {
                ret.LowlevelSetObject(CFBoolean.FalseHandle, kCGPDFContextAllowsPrinting);
            }
            if (AllowsCopying.HasValue && AllowsCopying.Value == false)
            {
                ret.LowlevelSetObject(CFBoolean.FalseHandle, kCGPDFContextAllowsCopying);
            }
            if (AccessPermissions.HasValue)
            {
                ret.LowlevelSetObject(NSNumber.FromInt32((int)AccessPermissions.Value), kCGPDFContextAccessPermissions);
            }
            // only set the keys if they exists in the current OS version
            if ((kCGPDFContextCreateLinearizedPDF != IntPtr.Zero) && CreateLinearizedPdf.HasValue)
            {
                ret.LowlevelSetObject(CFBoolean.ToHandle(CreateLinearizedPdf.Value), kCGPDFContextCreateLinearizedPDF);
            }
            // default to kCFBooleanFalse
            if ((kCGPDFContextCreatePDFA != IntPtr.Zero) && CreatePdfA2u.HasValue && CreatePdfA2u == true)
            {
                ret.LowlevelSetObject(CFBoolean.TrueHandle, kCGPDFContextCreatePDFA);
            }
            return(ret);
        }