public IActionResult OnGet([Required, FromQuery] long buildingId) { var building = _context.Buildings.Find(buildingId); if (building == null) { return(BadRequest()); } var templateDoc = new Document("Model-Cerere.doc"); var finalDoc = new DocumentDataSource { AuthorName = building.Owner, Area = building.ComputeArea(), Perimeter = building.ComputePerimeter(), }; var engine = new ReportingEngine(); engine.BuildReport(templateDoc, finalDoc, "finalDoc"); var stream = new MemoryStream(); templateDoc.Save(stream, SaveFormat.Docx); var bytes = stream.ToArray(); var mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; var fileName = "Cerere.docx"; return(File(bytes, mimeType, fileName)); }
private void AddDocumentDataSourceButton_Click(object sender, EventArgs e) { var dataSourceObject = new DataSourceObject(); DataSources.Add(dataSourceObject); var documentDataSource = new DocumentDataSource(); dataSourceObject.DataSource = documentDataSource; documentDataSource.ObjectInspector = ObjectInspector; GridViewDataSources.RefreshData(); }
internal byte[] Merge(List <Byte[]> documentsToAppend = null) { DocumentDataSource dds = new DocumentDataSource(); dds.StartingToken = "«"; dds.EndingToken = "»"; foreach (var placeHolder in this.MergeTemplate.MergePair) { dds[placeHolder.PlaceHolder] = placeHolder.Value; } dds["ff0000"] = new ColoredDataItem { Action = ColorAction.Remove }; foreach (var color in this.MergeTemplate.RemoveColor) { dds[color] = new ColoredDataItem { Action = ColorAction.Remove }; } foreach (var color in this.MergeTemplate.LeaveAndRemoveColor) { dds[color] = new ColoredDataItem { Action = ColorAction.LeaveAndRemoveColor }; } using (MemoryStream tempStream = new MemoryStream()) { using (var ms = new MemoryStream()) { MergeTemplate.InputFile.CopyTo(ms); var processedStream = DocumentRenderer.ProcessDocument(ms, dds); if (documentsToAppend != null) { Aspose.Words.Document document = new Document(processedStream); foreach (var docToAppend in documentsToAppend) { Aspose.Words.Document newDoc = new Document(new MemoryStream(docToAppend)); document.AppendDocument(newDoc, ImportFormatMode.KeepSourceFormatting); } document.Save(tempStream, SaveFormat.Docx); } else { processedStream.CopyTo(tempStream); } } return(tempStream.ToArray()); } }
public void InsertDocumentDinamically() { // By stream Document template = DocumentHelper.CreateSimpleDocument("<<doc [src.DocumentByStream]>>"); DocumentDataSource docStream = new DocumentDataSource(new FileStream(this._doc, FileMode.Open, FileAccess.Read)); BuildReport(template, docStream, "src", ReportBuildOptions.None); template.Save(MyDir + @"\Artifacts\ReportingEngine.InsertDocumentDinamically.docx"); Assert.IsTrue(DocumentHelper.CompareDocs(MyDir + @"\Artifacts\ReportingEngine.InsertDocumentDinamically.docx", MyDir + @"\Golds\ReportingEngine.InsertDocumentDinamically(stream,doc,bytes) Gold.docx"), "Fail inserting document by stream"); // By doc template = DocumentHelper.CreateSimpleDocument("<<doc [src.Document]>>"); DocumentDataSource docByDoc = new DocumentDataSource(new Document(MyDir + "ReportingEngine.TestDataTable.docx")); BuildReport(template, docByDoc, "src", ReportBuildOptions.None); template.Save(MyDir + @"\Artifacts\ReportingEngine.InsertDocumentDinamically.docx"); Assert.IsTrue(DocumentHelper.CompareDocs(MyDir + @"\Artifacts\ReportingEngine.InsertDocumentDinamically.docx", MyDir + @"\Golds\ReportingEngine.InsertDocumentDinamically(stream,doc,bytes) Gold.docx"), "Fail inserting document by document"); // By uri template = DocumentHelper.CreateSimpleDocument("<<doc [src.DocumentByUri]>>"); DocumentDataSource docByUri = new DocumentDataSource("http://www.sample-videos.com/doc/Sample-doc-file-100kb.doc"); BuildReport(template, docByUri, "src", ReportBuildOptions.None); template.Save(MyDir + @"\Artifacts\ReportingEngine.InsertDocumentDinamically.docx"); Assert.IsTrue(DocumentHelper.CompareDocs(MyDir + @"\Artifacts\ReportingEngine.InsertDocumentDinamically.docx", MyDir + @"\Golds\ReportingEngine.InsertDocumentDinamically(uri) Gold.docx"), "Fail inserting document by uri"); // By byte template = DocumentHelper.CreateSimpleDocument("<<doc [src.DocumentByByte]>>"); DocumentDataSource docByByte = new DocumentDataSource(File.ReadAllBytes(MyDir + "ReportingEngine.TestDataTable.docx")); BuildReport(template, docByByte, "src", ReportBuildOptions.None); template.Save(MyDir + @"\Artifacts\ReportingEngine.InsertDocumentDinamically.docx"); Assert.IsTrue(DocumentHelper.CompareDocs(MyDir + @"\Artifacts\ReportingEngine.InsertDocumentDinamically.docx", MyDir + @"\Golds\ReportingEngine.InsertDocumentDinamically(stream,doc,bytes) Gold.docx"), "Fail inserting document by bytes"); }
public void ProcessJson(dynamic dataSources) { DataSources.Clear(); foreach (var source in dataSources) { var dataSourceObject = new DataSourceObject(); if (source.DocumentDataSource != null) { var documentDataSource = new DocumentDataSource(); documentDataSource.ObjectInspector = ObjectInspector; documentDataSource.LoadProperties(source.DocumentDataSource); dataSourceObject.DataSource = documentDataSource; } else if (source.ObjectDataSource != null) { var objectDataSource = new ObjectDataSource(); objectDataSource.ObjectInspector = ObjectInspector; objectDataSource.LoadProperties(source.ObjectDataSource); dataSourceObject.DataSource = objectDataSource; } DataSources.Add(dataSourceObject); } GridViewDataSources.RefreshData(); }