Example #1
0
        public static bool SaveReport(string Filename, FixedDocumentSequence fqs)
        {
            bool result;

            try
            {
                File.Delete(Filename);
                SerializerProvider   serializerProvider   = new SerializerProvider();
                SerializerDescriptor serializerDescriptor = null;
                foreach (SerializerDescriptor current in serializerProvider.InstalledSerializers)
                {
                    if (current.IsLoadable && Filename.EndsWith(current.DefaultFileExtension))
                    {
                        serializerDescriptor = current;
                        break;
                    }
                }
                if (serializerDescriptor != null)
                {
                    Stream           stream           = File.Create(Filename);
                    SerializerWriter serializerWriter = serializerProvider.CreateSerializerWriter(serializerDescriptor, stream);
                    serializerWriter.Write(((IDocumentPaginatorSource)fqs).DocumentPaginator, null);
                    stream.Close();
                }
                result = true;
            }
            catch (Exception)
            {
                result = false;
            }
            return(result);
        }
Example #2
0
 /// <summary>Handler called when the application starts up.</sumary>
 private void ApplicationStartup(object sender, StartupEventArgs e)
 {
     try
     {
         SerializerProvider.RegisterSerializer(SerializerDescriptor.CreateFromFactoryInstance(new XamlSerializerFactory()), false);
         SerializerProvider.RegisterSerializer(SerializerDescriptor.CreateFromFactoryInstance(new TxtSerializerFactory()), false);
         SerializerProvider.RegisterSerializer(SerializerDescriptor.CreateFromFactoryInstance(new RtfSerializerFactory()), false);
         SerializerProvider.RegisterSerializer(SerializerDescriptor.CreateFromFactoryInstance(new HtmlSerializerFactory()), false);
     }
     catch (ArgumentException)
     {
     }
 }
Example #3
0
 protected override void OnExit(ExitEventArgs e)
 {
     try
     {
         SerializerProvider.UnregisterSerializer(SerializerDescriptor.CreateFromFactoryInstance(new XamlSerializerFactory()));
         SerializerProvider.UnregisterSerializer(SerializerDescriptor.CreateFromFactoryInstance(new TxtSerializerFactory()));
         SerializerProvider.UnregisterSerializer(SerializerDescriptor.CreateFromFactoryInstance(new RtfSerializerFactory()));
         SerializerProvider.UnregisterSerializer(SerializerDescriptor.CreateFromFactoryInstance(new HtmlSerializerFactory()));
     }
     catch (ArgumentException)
     {
     }
     base.OnExit(e);
 }
Example #4
0
        }// end:SaveDocumentAsFile()

        // --------------------------- SaveToFile -----------------------------
        /// <summary>
        ///   Saves the current document to a specified file.</summary>
        /// <param name='fileName'>
        ///   The name of file to save to.</param>
        /// <returns>
        ///   true if the document was saved successfully; otherwise, false
        ///   if there was an error or the user canceled the save.</returns>
        private bool SaveToFile(string fileName)
        {
            if (fileName == null)
            {
                throw new ArgumentNullException(nameof(fileName));
            }

            // If the file already exists, delete it (replace).
            if (File.Exists(fileName))
            {
                File.Delete(fileName);
            }

            FlowDocument flowDocument = FDPV.Document as FlowDocument;
            string       fileContent  = null;

            try
            {
                // Create a SerializerProvider for accessing plug-in serializers.
                SerializerProvider serializerProvider = new SerializerProvider();

                // Locate the serializer that matches the fileName extension.
                SerializerDescriptor selectedPlugIn = null;
                foreach (SerializerDescriptor serializerDescriptor in
                         serializerProvider.InstalledSerializers)
                {
                    if (serializerDescriptor.IsLoadable &&
                        fileName.EndsWith(serializerDescriptor.DefaultFileExtension))
                    {          // The plug-in serializer and fileName extensions match.
                        selectedPlugIn = serializerDescriptor;
                        break; // foreach
                    }
                }

                // If a match for a plug-in serializer was found,
                // use it to output and store the document.
                if (selectedPlugIn != null)
                {
                    Stream           package          = File.Create(fileName);
                    SerializerWriter serializerWriter =
                        serializerProvider.CreateSerializerWriter(selectedPlugIn,
                                                                  package);
                    IDocumentPaginatorSource idoc =
                        flowDocument as IDocumentPaginatorSource;
                    serializerWriter.Write(idoc.DocumentPaginator, null);
                    package.Close();
                    return(true);
                }
                else if (fileName.EndsWith(".xml"))
                {
                    // Save as a WordXML document.
                    WordXmlSerializer.SaveToFile(fileName, flowDocument.ContentStart, flowDocument.ContentEnd);
                    return(true);
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(
                    "Error occurred during a conversion to this file format: " +
                    fileName + "\n" + e.ToString(), this.GetType().Name,
                    MessageBoxButton.OK, MessageBoxImage.Error);
                return(false);
            }

            if (fileContent == null)
            {
                MessageBox.Show("A serializer for the given file extension" +
                                "could not be found.\n" + fileName, this.GetType().Name,
                                MessageBoxButton.OK, MessageBoxImage.Error);
                return(false);
            }

            // Output the formatted content to the specified file.
            try
            {   // Write the file content.
                StreamWriter writer = new StreamWriter(fileName);
                writer.WriteLine(fileContent);
                writer.Close();
            }
            catch (Exception e)
            {
                MessageBox.Show("Error occurred during document save: " +
                                fileName + "\n" + e.ToString(), this.GetType().Name,
                                MessageBoxButton.OK, MessageBoxImage.Error);
                return(false);
            }

            return(true);
        }// end:SaveToFile()
Example #5
0
 public static IServiceCollection AddSerializerDescriptor(this IServiceCollection services,
                                                          SerializerDescriptor descriptor) =>
 services.AddSingleton(descriptor ?? throw new ArgumentNullException(nameof(descriptor)));