private void InitCache(CreateAndRegisterStream streamDelegate)
 {
     if (this._scalabilityCache == null)
     {
         this._scalabilityCache = (ScalabilityCache)ScalabilityUtils.CreateCacheForTransientAllocations(streamDelegate, "Word", AspNetCore.ReportingServices.Rendering.WordRenderer.WordOpenXmlRenderer.Models.StorageObjectCreator.Instance, WordRendererReferenceCreator.Instance, ComponentType.Rendering, 1);
     }
 }
Exemplo n.º 2
0
        public OpenXmlDocumentModel(Stream output, WordOpenXmlWriter.CreateXmlStream createXmlStream, ScalabilityCache scalabilityCache)
        {
            _createXmlStream  = createXmlStream;
            _zipPackage       = Package.Open(output, FileMode.Create);
            _documentPart     = (_currentPart = new PartInfo());
            _currentPart.Part = new DocumentPart();
            _manager          = new PartManager(ZipPackage);
            Relationship relationship = _manager.AddStreamingRootPartToTree("application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml", "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument", "word/document.xml");

            WriteStylesheet();
            WriteSettings();
            _currentPart.PartName          = relationship.RelatedPart;
            _currentPart.Stream            = _createXmlStream("document");
            _currentPart.Writer            = new InterleavingWriter(_currentPart.Stream, scalabilityCache);
            _currentHeaderFooterReferences = default(TemporaryHeaderFooterReferences);
            _tags = new Stack <OoxmlComplexType>();
            _currentPart.Writer.TextWriter.Write(OoxmlPart.XmlDeclaration);
            CT_Document cT_Document = new CT_Document();

            cT_Document.WriteOpenTag(_currentPart.Writer.TextWriter, _currentPart.Part.Tag, _currentPart.Part.Namespaces);
            _tags.Push(cT_Document);
            CT_Body ctObject = new CT_Body();

            WriteStartTag(ctObject, CT_Document.BodyElementName);
            _currentPart.TableContext = new TableContext(_currentPart.Writer, inHeaderFooter: false);
            _listManager       = new OpenXmlListNumberingManager();
            _sectionProperties = new OpenXmlSectionPropertiesModel();
        }
 public InterleavingWriter(Stream stream, ScalabilityCache scalabilityCache)
     : this(stream)
 {
     _interleavingContent = new ScalableList <IInterleave>(1, scalabilityCache, 113, 13);
 }