/// <summary> /// Creates a new instance of the PresentationDocument class from the specified package. /// </summary> /// <param name="package">The specified OpenXml package.</param> /// <param name="openSettings">The advanced settings for opening a document.</param> /// <returns>A new instance of PresentationDocument.</returns> /// <exception cref="ArgumentNullException">Thrown when package is a null reference.</exception> /// <exception cref="OpenXmlPackageException">Thrown when package is not opened with read access.</exception> /// <exception cref="OpenXmlPackageException">Thrown when the package is not a valid Open XML document.</exception> /// <exception cref="ArgumentException">Thrown when specified to process the markup compatibility but the given target FileFormatVersion is incorrect.</exception> public static PresentationDocument Open(Package package, OpenSettings openSettings) { if (openSettings is null) { throw new ArgumentNullException(nameof(openSettings)); } if (openSettings.MarkupCompatibilityProcessSettings.ProcessMode != MarkupCompatibilityProcessMode.NoProcess && !openSettings.MarkupCompatibilityProcessSettings.TargetFileFormatVersions.Any()) { throw new ArgumentException(ExceptionMessages.InvalidMCMode); } PresentationDocument doc = new PresentationDocument(); doc.OpenSettings = new OpenSettings(); doc.OpenSettings.AutoSave = openSettings.AutoSave; doc.OpenSettings.MarkupCompatibilityProcessSettings.ProcessMode = openSettings.MarkupCompatibilityProcessSettings.ProcessMode; doc.OpenSettings.MarkupCompatibilityProcessSettings.TargetFileFormatVersions = openSettings.MarkupCompatibilityProcessSettings.TargetFileFormatVersions; doc.MaxCharactersInPart = openSettings.MaxCharactersInPart; doc.OpenCore(package); if (MainPartContentTypes[doc.DocumentType] != doc.MainPartContentType) { doc.UpdateDocumentTypeFromContentType(); } return(doc); }
/// <summary> /// Creates a new instance of the PresentationDocument class from the IO stream. /// </summary> /// <param name="stream">The IO stream on which to open the PresentationDocument.</param> /// <param name="isEditable">In ReadWrite mode. False for Read only mode.</param> /// <param name="openSettings">The advanced settings for opening a document.</param> /// <returns>A new instance of PresentationDocument.</returns> /// <exception cref="ArgumentNullException">Thrown when "stream" is null reference.</exception> /// <exception cref="IOException">Thrown when "stream" is not opened with Read (ReadWrite) access.</exception> /// <exception cref="OpenXmlPackageException">Thrown when the package is not valid Open XML PresentationDocument.</exception> /// <exception cref="ArgumentException">Thrown when specified to process the markup compatibility but the given target FileFormatVersion is incorrect.</exception> public static PresentationDocument Open(Stream stream, bool isEditable, OpenSettings openSettings) { if (openSettings is null) { throw new ArgumentNullException(nameof(openSettings)); } if (openSettings.MarkupCompatibilityProcessSettings.ProcessMode != MarkupCompatibilityProcessMode.NoProcess && !openSettings.MarkupCompatibilityProcessSettings.TargetFileFormatVersions.Any()) { throw new ArgumentException(ExceptionMessages.InvalidMCMode); } var doc = new PresentationDocument { OpenSettings = new OpenSettings(openSettings), }; doc.OpenCore(stream, isEditable); if (MainPartContentTypes[doc.DocumentType] != doc.MainPartContentType) { doc.UpdateDocumentTypeFromContentType(); } return(doc); }
/// <summary> /// Creates a new instance of the PresentationDocument class from the IO stream. /// </summary> /// <param name="stream">The IO stream on which to open the PresentationDocument.</param> /// <param name="isEditable">In ReadWrite mode. False for Read only mode.</param> /// <param name="openSettings">The advanced settings for opening a document.</param> /// <returns>A new instance of PresentationDocument.</returns> /// <exception cref="ArgumentNullException">Thrown when "stream" is null reference.</exception> /// <exception cref="IOException">Thrown when "stream" is not opened with Read (ReadWrite) access.</exception> /// <exception cref="OpenXmlPackageException">Thrown when the package is not valid Open XML PresentationDocument.</exception> /// <exception cref="ArgumentException">Thrown when specified to process the markup compatibility but the given target FileFormatVersion is incorrect.</exception> public static PresentationDocument Open(System.IO.Stream stream, bool isEditable, OpenSettings openSettings) { if (openSettings.MarkupCompatibilityProcessSettings.ProcessMode != MarkupCompatibilityProcessMode.NoProcess && !openSettings.MarkupCompatibilityProcessSettings.TargetFileFormatVersions.Any()) { throw new ArgumentException(ExceptionMessages.InvalidMCMode); } PresentationDocument doc = new PresentationDocument(); doc.OpenSettings = new OpenSettings(); doc.OpenSettings.AutoSave = openSettings.AutoSave; doc.OpenSettings.MarkupCompatibilityProcessSettings.ProcessMode = openSettings.MarkupCompatibilityProcessSettings.ProcessMode; doc.OpenSettings.MarkupCompatibilityProcessSettings.TargetFileFormatVersions = openSettings.MarkupCompatibilityProcessSettings.TargetFileFormatVersions; doc.MaxCharactersInPart = openSettings.MaxCharactersInPart; doc.OpenCore(stream, isEditable); if (MainPartContentTypes[doc.DocumentType] != doc.MainPartContentType) { doc.UpdateDocumentTypeFromContentType(); } return(doc); }