public void CanCreateFlatOpcPresentationDocuments5()
        {
            using (var inputStream = GetStream(TestFiles.Presentation))
                using (var source = PresentationDocument.Open(inputStream, false))
                {
                    var flatOpcString = source.ToFlatOpcString();

                    using (var dest = PresentationDocument.FromFlatOpcString(flatOpcString))
                    {
                        PackageAssert.Equal(source, dest);
                    }
                }
        }
        public void CanCreateFlatOpcPresentationDocuments()
        {
            using (var source = PresentationDocument.Open(Path.Combine(TestUtil.TestResultsDirectory, PresentationPath), true))
            {
                // Test FlatOpcDocument methods.
                // Check ToFlatOpcDocument() and FromFlatOpcDocument(XDocument).
                var flatOpcDoc = source.ToFlatOpcDocument();
                using (var dest = PresentationDocument.FromFlatOpcDocument(flatOpcDoc))
                    AssertThatPackagesAreEqual(source, dest);

                // Check FromFlatOpcDocument(XDocument, Stream, bool).
                using (Stream stream = new MemoryStream())
                    using (PresentationDocument.FromFlatOpcDocument(flatOpcDoc, stream, false))
                        using (var dest = PresentationDocument.Open(stream, false))
                            AssertThatPackagesAreEqual(source, dest);

                // Check FromFlatOpcDocument(XDocument, string, bool).
                using (PresentationDocument.FromFlatOpcDocument(flatOpcDoc, Path.Combine(TestUtil.TestResultsDirectory, PresentationClonePath), false))
                    using (var dest = PresentationDocument.Open(Path.Combine(TestUtil.TestResultsDirectory, PresentationClonePath), false))
                        AssertThatPackagesAreEqual(source, dest);

                // Check FromFlatOpcDocument(XDocument, Package).
                using (var stream = new MemoryStream())
                    using (var package = Package.Open(stream, FileMode.Create, FileAccess.ReadWrite))
                        using (var dest = PresentationDocument.FromFlatOpcDocument(flatOpcDoc, package))
                            AssertThatPackagesAreEqual(source, dest);

                // Test FlatOpcString methods.
                // Check ToFlatOpcString() and FromFlatOpcString(string).
                var flatOpcString = source.ToFlatOpcString();
                using (var dest = PresentationDocument.FromFlatOpcString(flatOpcString))
                    AssertThatPackagesAreEqual(source, dest);

                // Check FromFlatOpcString(string, Stream, bool).
                using (Stream stream = new MemoryStream())
                    using (PresentationDocument.FromFlatOpcString(flatOpcString, stream, false))
                        using (var dest = PresentationDocument.Open(stream, false))
                            AssertThatPackagesAreEqual(source, dest);

                // Check FromFlatOpcString(string, string, bool).
                using (PresentationDocument.FromFlatOpcString(flatOpcString, Path.Combine(TestUtil.TestResultsDirectory, PresentationClonePath), false))
                    using (var dest = PresentationDocument.Open(Path.Combine(TestUtil.TestResultsDirectory, PresentationClonePath), false))
                        AssertThatPackagesAreEqual(source, dest);

                // Check FromFlatOpcString(string, Package).
                using (var stream = new MemoryStream())
                    using (var package = Package.Open(stream, FileMode.Create, FileAccess.ReadWrite))
                        using (var dest = PresentationDocument.FromFlatOpcString(flatOpcString, package))
                            AssertThatPackagesAreEqual(source, dest);
            }
        }
        public void CanCreateFlatOpcPresentationDocuments8()
        {
            using (var inputStream = GetStream(TestFiles.Presentation))
                using (var source = PresentationDocument.Open(inputStream, false))
                {
                    var flatOpcString = source.ToFlatOpcString();

                    using (var stream = new MemoryStream())
                        using (var package = Package.Open(stream, FileMode.Create, FileAccess.ReadWrite))
                            using (var dest = PresentationDocument.FromFlatOpcString(flatOpcString, package))
                            {
                                PackageAssert.Equal(source, dest);
                            }
                }
        }
        public void CanCreateFlatOpcPresentationDocuments7()
        {
            using (var inputStream = GetStream(TestFiles.Presentation))
                using (var source = PresentationDocument.Open(inputStream, false))
                {
                    var flatOpcString = source.ToFlatOpcString();

                    using (var tempFile = TemporaryFile.Create())
                        using (PresentationDocument.FromFlatOpcString(flatOpcString, tempFile.Path, false))
                            using (var dest = PresentationDocument.Open(tempFile.Path, false))
                            {
                                PackageAssert.Equal(source, dest);
                            }
                }
        }
        /// <summary>
        /// Creates a new instance of DocumentType from a Flat OPC string.
        /// </summary>
        /// <param name="text">The Flat OPC string.</param>
        /// <typeparam name="TDocument">A subclass of <see cref="OpenXmlPackage" />.</typeparam>
        /// <returns>A new instance of DocumentType</returns>
        public static TDocument FromFlatOpcString <TDocument>(string text)
            where TDocument : OpenXmlPackage
        {
            var t = typeof(TDocument);

            if (t == typeof(WordprocessingDocument))
            {
                return(WordprocessingDocument.FromFlatOpcString(text) as TDocument);
            }
            if (t == typeof(SpreadsheetDocument))
            {
                return(SpreadsheetDocument.FromFlatOpcString(text) as TDocument);
            }
            if (t == typeof(PresentationDocument))
            {
                return(PresentationDocument.FromFlatOpcString(text) as TDocument);
            }
            throw new OpenXmlTransformationException("Unsupported document type: " + t);
        }