internal void Close() { lock (this) { if (_isOpened) { // Close all pages. try { foreach (Page page in _allPages.Values) { // Only dispose document page, embedded page will be disposed by its parent document page. if (page != null && page is DocumentPage) { page.Dispose(); } } } catch (Exception exp) { Debug.WriteLine(exp.Message); } UnlockFile(); _documentData = new DocumentData(this, DocumentType.Standard); _versionData = new VersionData(this); _allPages.Clear(); _fileName = null; _isDirty = false; _isOpened = false; } ///out of _isOpened in order to clear work directory when unzip exception. UninitializeWorkingDirectory(); } }
internal Document(DocumentType type) { _documentData = new DocumentData(this, type); _versionData = new VersionData(this); _imagesData = new ImagesData(this); // Initialize working directory so that we can save page data and stream data in working directory, // even if we don't save this document. InitializeWorkingDirectory(); _isOpened = true; // Document is opened once it is created. }