Beispiel #1
0
        /// <summary>
        /// Returns the extension of the XpsFileType
        /// </summary>
        /// <param name="fileType">The type of extension returned</param>
        /// <returns></returns>
        public static String GetExtension(XpsFileType fileType)
        {
            string extension;

            switch (fileType)
            {
            case XpsFileType.FixedDocumentSequence:
                extension = _documentSequenceExtension;
                break;

            case XpsFileType.FixedDocument:
                extension = _fixedDocumentExtension;
                break;

            case XpsFileType.FixedPage:
                extension = _fixedPageExtension;
                break;

            case XpsFileType.Relationship:
                extension = _relationshipExtension;
                break;

            case XpsFileType.ImagePng:
                extension = _imagePngExtension;
                break;

            case XpsFileType.ImageTif:
                extension = _imageTifExtension;
                break;

            case XpsFileType.ImageJpg:
                extension = _imageJpgExtension;
                break;

            case XpsFileType.ImageWmp:
                extension = _imageWmpExtension;
                break;

            case XpsFileType.Font:
                extension = _fontExtension;
                break;

            case XpsFileType.ObfuscatedFont:
                extension = _obfuscatedFontExtension;
                break;

            case XpsFileType.ResourceDictionary:
                extension = _resourceDictionaryExtension;
                break;

            case XpsFileType.ColorContext:
                extension = _colorContextExtension;
                break;

            default:
                throw new ArgumentException("Invalid XpsFileType");
            }
            return(extension);
        }
Beispiel #2
0
        /// <summary>
        ///   Here we generate the file name based on the Xps File Type.  We also
        ///   create the directory where the file will end up being saved.</summary>
        /// <param name="fileType">Type of Xps part</param>
        /// <param name="outputDirectory">Directory where the file will be stored</param>
        /// <returns>Name of file</returns>
        public static String GenerateFileName(XpsFileType fileType, String outputDirectory)
        {
            string fileName;
            string path;

            switch (fileType)
            {
            case XpsFileType.FixedDocumentSequence:
                //There will be only 1 FixedDocumentSequence and it will be at the root
                path     = null;
                fileName = _documentSequenceName + "." + _documentSequenceExtension;
                break;

            case XpsFileType.FixedDocument:
                path     = "Documents/";
                fileName = path + _fixedDocumentName + "_" + _fixedDocumentCount + "." + _fixedDocumentExtension;
                _fixedDocumentCount++;
                break;

            case XpsFileType.FixedPage:
                path     = "Pages/";
                fileName = path + _fixedPageName + "_" + _fixedPageCount + "." + _fixedPageExtension;
                _fixedPageCount++;
                break;

            case XpsFileType.ImagePng:
                path     = "Resources/Images/";
                fileName = path + _imageName + "_" + _imageCount + "." + _imagePngExtension;
                _imageCount++;
                break;

            case XpsFileType.Font:
                Guid   fontguid   = Guid.NewGuid();
                String fontString = fontguid.ToString();

                path     = "Resources/Fonts/";
                fileName = path + fontString + "." + _obfuscatedFontExtension;
                break;

            case XpsFileType.ColorContext:
                Guid   colorContextGuid   = Guid.NewGuid();
                String colorContextString = colorContextGuid.ToString();

                path     = "Resources/ColorContexts/";
                fileName = path + colorContextString + "." + _colorContextExtension;
                break;

            case XpsFileType.ResourceDictionary:
                Guid   resourceDictionaryGuid   = Guid.NewGuid();
                String resourceDictionaryString = resourceDictionaryGuid.ToString();

                path     = "Resources/ResourceDictionaries/";
                fileName = path + resourceDictionaryString + "." + _resourceDictionaryExtension;
                break;

            case XpsFileType.Relationship:
                fileName = null;
                path     = null;
                break;

            default:
                throw new ArgumentException("File Type is not valid");
            }

            if (path != null)
            {
                String fullPath = outputDirectory + "/" + path;
                if (Directory.Exists(fullPath) != true)
                {
                    Directory.CreateDirectory(fullPath);
                }
            }
            return(fileName);
        }// end:GenerateFileName
Beispiel #3
0
        // ----------------------------- AddType ------------------------------
        /// <summary>
        ///   Relates a file extension to a XpsFileType
        ///   in the Content Types file.</summary>
        /// <param name="fileType">
        ///   The type of XpsFile to add.</param>
        /// <param name="extension">
        ///   The file extension of the file type.</param>
        public void AddType(XpsFileType fileType, String extension)
        {
            //check for duplicates
            if (_contentTypeTable.Contains(fileType) == false)
            {
                _contentTypeTable.Add(fileType);

                _writer.WriteStartElement(_contentTypeDefault);
                _writer.WriteAttributeString(_contentTypeExtension, extension);

                String contentType;
                switch (fileType)
                {
                case XpsFileType.FixedDocumentSequence:
                    contentType = _FixedDocumentSequenceContentType;
                    break;

                case XpsFileType.FixedDocument:
                    contentType = _FixedDocumentContentType;
                    break;

                case XpsFileType.FixedPage:
                    contentType = _FixedPageContentType;
                    break;

                case XpsFileType.Relationship:
                    contentType = _RelationshipsContentType;
                    break;

                case XpsFileType.ImagePng:
                    contentType = _ImagePngContentType;
                    break;

                case XpsFileType.ImageTif:
                    contentType = _ImageTifContentType;
                    break;

                case XpsFileType.ImageJpg:
                    contentType = _ImageJpgContentType;
                    break;

                case XpsFileType.ImageWmp:
                    contentType = _ImageWmpContentType;
                    break;

                case XpsFileType.Font:
                    contentType = _fontContentType;
                    break;

                case XpsFileType.ObfuscatedFont:
                    contentType = _ObfuscatedFontContentType;
                    break;

                case XpsFileType.ResourceDictionary:
                    contentType = _resourceDictionaryContentType;
                    break;

                case XpsFileType.ColorContext:
                    contentType = _colorContextContentType;
                    break;

                default:
                    throw new ArgumentException("Invalid XpsFileType");
                }

                _writer.WriteAttributeString(_contentTypeString, contentType);
                _writer.WriteEndElement();
            }
        }// end:AddType