UNIT6-open / TemplateEngine.Docx

Smart docx template engine for .NET
Other
408 stars 136 forks source link

Unable to get it working with stream #72

Open pradeepradyumna opened 2 years ago

pradeepradyumna commented 2 years ago

First of all, this is an amazing creation, I'm loving it.

I got it working with files by passing their path like C:/Files/Sample.docx. However, when I try with Stream object, passing it to TemplateProcessor, it breaks and gives the below exception. Can you help me with this?

System.ArgumentException: Update mode requires a stream with read, write, and seek capabilities.

   at System.IO.Compression.ZipArchive..ctor(Stream stream, ZipArchiveMode mode, Boolean leaveOpen, Encoding entryNameEncoding)

   at System.IO.Packaging.ZipPackage..ctor(Stream s, FileMode packageFileMode, FileAccess packageFileAccess)

   at System.IO.Packaging.Package.Open(Stream stream, FileMode packageMode, FileAccess packageAccess)

   at DocumentFormat.OpenXml.Packaging.OpenXmlPackage.OpenCore(Stream stream, Boolean readWriteMode)

   at DocumentFormat.OpenXml.Packaging.WordprocessingDocument.Open(Stream stream, Boolean isEditable, OpenSettings openSettings)

   at DocumentFormat.OpenXml.Packaging.WordprocessingDocument.Open(Stream stream, Boolean isEditable)

   at TemplateEngine.Docx.TemplateProcessor..ctor(Stream stream)

   at SharepointExercise.Controllers.HomeController.Download(String id) in D:\Projects\Innovacare\InnovaX\SharepointExercise\Controllers\HomeController.cs:line 196

   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)

   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)

   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)

   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)

   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)

   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)

   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)

   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)

   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)

   at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)

   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)

   at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)

   at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)

   at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

HEADERS

=======

Accept: */*

Host: localhost:7228

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0

:method: GET

Accept-Encoding: gzip, deflate, br

Accept-Language: en-US,en;q=0.5

Cookie: .AspNetCore.Cookies=chunks-2,.AspNetCore.CookiesC1=CfDJ8HnmQt_cM7hPkPLoai808rWBB_tjMCh-7IFzy0pEQlHkEgj1ApBXHdUgCd_zmhDVq_cYahSCgm9w7BJx32E7xroPm_rqMplsb3pq1DtY0ztHif1hAvICCwcDX1mEPvKAxkt9YdYbRoKL_R7w3pNJInE1s9JhaQ4xo97En2Khi1AgXnZTi6v0VrqFUpa3IZImLMbW14JHd2xEoj_0wMcRYQpTDxzavl3K8AxV8VPwHesF5NsWzAOWkaVZ2uW2Sch4QQ_9EijicUa0Oq3zInk61bbkQIi3IBkC-TSr77TkBnKtWXWO06IUiZTO9Pp_d0yJcCYLzk5mpnh8SSqvWtSP3FHcbi79xYPGxG04PTfZMEOIi7qVzotlljQBG4l8L2YdYV0rP8x1iqrjADF1yFdr20QfIit8-_pwK9a2FtsEJ71oOr7_QmGncLN4PcYB8tA4lJazyMtJ5iOrBPI4eDgpCrPR450IVAl5eiLR7BynhqSNFCEcbzcGeNiwxTbEFJq3kF7fLMjUD4yW52l_z7RbvLCw6sfN1R0_Iso7XBZpP1rjjRjd-cR2uHnV3gV9N10A_-njQjv4sKXmvoba5xvf-WwCclc2wvDvzlOk-q-cq6c1q8OQ7mTrpXKwVm6w6zAc7JEMAO1kpYqWiPP2jGx_-CCC-IL8CZWjdfs_IaYkLcjZP99F26e761b3eK0Wt55wjN7-ORRq7YrohhrRyh6vGWEPZ5nVtXNnmZ_uiY6AWYT3ay9SO2W5cyFppN5shlVv6krnxSqPGFOgoTA4Bui4vTTBFgUBKvoNQYjlzoD9HD8Y2EfXM4cxuhQ28FOjq2PN3s0V6wze-TTStDl16_R_XOWP0uIhkO5tm-84gPdfgJ_nsyG66gREDJD67hOjDuRIC2iOtRODR9Qbrtb3njIclKTfC7T0GwsXKwW8eaCyaksGOQ3uDVE0lBEqYCsYe1iV25xO3ZhUiE5kFnwAMJQgSPKlgvoci0cTXZ9SrhkyHlvVSKCUvhBPW2TUecCkiowCJs4HV_sVzVWiUJ6DE0O_S_4e4HSbqnenhkdwaOmLhmEsPcHP0b7UwZZu28l5yKZT8qNMcrun7na9dOWPAYn6_vD1NuR5yR_hjq3Cg4PsOS6XNTDSIam5fnoL6ONevq9vYZmTpBdvbE6z0sAGWTxOgy_TSawQGzk42GULWtnqQv0r1Cv-EYVQYibWg7sxgTzllXFBfW-aM22ZuZwenxbD4WLVp-fW0bfCoKC9YrRPmDaVqWlOfG_pzuupkNljAFAsjDjgbYsd_K0Vtnp6xdXYOEzmjxyz-RGE7lEktopg0WckTgGC5uFEHEdY3flfmXZTyZJyuhWB2XeHiWbQMNqUXqpfx1F30-VzlNLm9iJeO5czdBwBKdGRFnjE-c8OX1JllwO_ogIHUuYp3rPdoMnqO50bGFXWne5z-HmM1jMOOn12htQ7xZ5HLnGeqgPm6F7l9KwmoMvS4I0e_OHv-YUK007rB3S_CAA1iNdfrsSvlQKB0jE-BRdiQCbXdah-u3t0ldV4-vjeTcpiTFowQqq99vKuO_PgOIArGij-hTh3h-JRv0GrCpRB4Gm3hYg_BuC0R9GSpBhQMAsPl4fczSQGYrfVkdxEK-qRF0mmqqzKBdleUogY4uQh9rjXRVi1GhWmRFmtftn1iwgXtwbb-xAGXsgFb83xc1kWXhtGVmQRYvzDezjZpAoJGfzL61eTBR4a5OeTYcnrMr1aH03vD875zsKWMAwpib1UZZGLAb27QllZouF1hUQCU_5VRJTgk9Nfxgd-pwP5iUNgAnqSBjmnv-IhD_vOndhi6l3koawvezpN2-fjgDJF-u9x-giRzkPR8OgwH5Kicdy9pEwNiU_8cc4gIqw6JMp9Z10F-hs5FyfF_Mm1x9_YPOeH2DGx50t3kI3vZX2YuJpiWsWZ-tRsTPjD8goBOIS1HmK7K0B3Ad3gDqNjK6qp4-p0An3Er3WWgvfuaWDIy0Mpd2eEA3Qg4sW_aBaDMW6g1rOEwTU0UQqKLdIa0ZbZ-Vf4OXop5ErGfN-ab3CW420g4n4qU0wqcKbdUNyd5o-63gKvl2SP90y6zdBtH6v_BxO9l_zqnfSLNyryXspA17cRNNfKuNNIreiCehIjt9e7vKy6QELxqgA3mVtl2ASy4LzDEBZBsxVxVspQg9psqBzkeQZTyO5sl3zdkT7S-0Ro6kISI6sSzOTIrBmAEd48fvYTUU7h4uasUmDjdCC1b8RLtqKYnY_OzcpArPkVw4I3g54JbEjgxEG-G2kPr7i5j8RKOzfVHaPv3rR0XjKtXOTenVGYMbvq1ki16JLIaDMtn_Tu7A_g6hYW9d2zig0U6WkLde2qvIIw_f4ex_6a9BZOo7SZNvp-2g3TgOwtuXb1gmu1-rfle0C4E4rba647URnN6gzhHzeqJKM3M_bxoLTUuf4L2MmNk87gCRdpLKrb8q6lRbXDYF7X9bsHwaRn4LBEWQzvM9UlKM9l87qw1C0AiV2_8lvth5v58X1zNzX1BmKBYUdVt9QwdnJFt0DcMCG0ySG4drJImfNiAZtm418vDMFZi6RmtEgEdR4I0OQ6xD4qdrOBFcu-wdDeL18A6_lfvEYRk1_a0tz2bc72v47bF4BaVAVUmIt2vpP9ipMcblsElIqfLuMZI2_D2WhNuFURkgaAvovrN5NrhjTcyhT-imaFAmvUb5Nxelb4NcDny0Dq3gLRfSqYgF-f1gqAU6LuPSWSJybWC_EIYs9ZNuGw42KSWkEyFiUQHeNY8sOTizril6xFz4pMFDajUX54OmfHwlBUzl6Y6_pfabDP-0J61DpLFHbSFuK0cLi39Njt0puvPls8jP-Vz3nltiFUgYNr03DaoSh-XHWWtUKiZJfrfMpFPb2U8vID23jDG1ysV_Ce6hCV0IRfOYotpZGy_YLSomg2aptLea-Jn7ql65itXWcK5VDKwmrVVcDdKzLe3yKVBuuGCxTtpySs3aU_zyDSRL7mkU8NlDtS4F00qYowYd-hB-1nv-z82zvnrVjqaxHMm4Vnh8JKfnSOw5ibuUssXOaPcxjLVsVJwRplIzL_sUbS38A-klyes_w4MhQv4qHSed9f9WJyrx4kM50cVS7JJpCI1eXCGjUGnGxxtKApU8501LZaClWf4o9eAwbMt8U15rGcC_x1UrcJyCEfFqNlJno2t8fM-OktFzpWgwQf03OgZGDrcKb_XknLe_YUa6-yJ9qhDhUoBTGt1Ru0_B65vaDXe32j0vQ86Z_yk7PXs-PLgWhJZpXAFlEgrk5yEFKbBTrttnr7hh-s_9jntlMAjdtG_Pisf5fUzFQdCK9AipQ3qcePnOXkxlE_ZT4igQ_vqjkX6w0_Rfz0KO8tg5AFsoCd3fFCrHSkm9UNKHvCMfvA4ugN61BPYon5gkyxQ2bGKIQOuuvSMSc7rwhTDPt5RmF3VOGz5M4rpb8gIski2OpAKKhxs9Lcv7Bgk5Uh2kleFAplPSRezAU-WW2jyVczMHQZfn_kO1g0VSQ8r5R2uAaSGivA5Sg8PDyhjam16V7lt0fD9KFmBNeUmfDao7DzgZf07plWxToNxvXIb59nlNRCusDTgYK8vEkBmWDo0ERfVFXPImhWQC2cZH1Mouihx4QkRFV0J5c77Hmten7p93Lm9v8jKjpWb6XDRoy11Vkj40w38iHs4w0MPDKlDvrX6H2ayBhSv7ug1JY1JDiLGuSgMn9f4a1aveLCA-TTIHY6OaLiNHayyFDd17U9ItjA-GblJJHwpDfWZW6NjM0Qb_v0C7de1PTozmA6Wmw33R6n1no0HyavG8OfdNKNj2hHpWxyTyksV4tUY5WsZXnzJVR7g7j0LHoZXaSRDr3m5TY4-vrl97ygMBEQPBQF2rvBQ38JmweHGoJRgA7ku1Vku8OLCt6I-2Te7a6Jt-Vot0btQDhjp3AnuA9QwaedHQn11_w_ZwE3vyk-13h_1QJ60VB,.AspNetCore.CookiesC2=bkj7EiWMlz4K4XD8D1c7fY7pXj6Sk2XMFz37Lki1Z-tKolfeVZKGsZamAo11f9FS7_9jo5uj5aHbQ-7ZMuCvUuaFj9eu62q2aC7PD3VlYIATNU6Cd8NcxKbzedcL1xrMBiwsyDsY4M_hifKO_iYbvu53onU750AwNy1FA1wRfiZ1wJxJj5Hj5LhC3RDGS7T5IaEQ6--K_CfUKAVZ8zqzbpGw8UNplWRG7X05LOcElrJCvPaiZkA_WglwEbMNialfYsZg4hE2kt6oYe8r46zS1AY-D2__ecyL7Zat1eMSQpSaTvxS5xP0rAUQSAC8jGMZGedPtbCtHNaJmojk7XH6VkDNSbyICrYGm-3Fd10cTCARkk6cx1G_GzFzqCUQIfc8zex2-_-WPfazm3BoYSqyvrNcSbzf77r3hGCXI7GEdHZ4kUVEyY_F8DEWS0wv_9wH4Zwu6pHJo4DWOM_LivTFnJK-SAGV8defjxUPQ5FMNg2McDERkw6MQYywblpYJqOnHs1Hw59nNnQOWEiKv6AyIzNu3gdP_wx6fNqHLW259CshOTpUgIpUsO0K6Svuh8xhyyVj0cdKBcRP3wK1YiBxopLyV8HQ31e0_HE7o91kTgQ3jxlv5uNA5m7Y9Yv-9E2yLznDSh6RO21k219zsCeCLyY6vhqbojZdqUxzHjg1rtViy4qi1C5g3APwEP9Uu19g14Spqdm0MLoESrgrioJaix6xyKt0ydnEGUTRblVz-z2JwFEoihAEPBvV5LYPupN9h3K466OhD8yBtIw4PrOGPjPuezV5KgVpM-RHYFJ8GG2PuEOQeZ6msmiynVKaZcCN_8dkowSCHgQaUXsG1VBfgVvx-OI7sFcJceMZdw51K6zMWGRFAgbAhLAKlgSVZR3MT8WLXCk4L2wcG_SaHo18HATOOofjLr1hDEE4QpWKBSvq7Rh5fhpFN0_Si2Ki8bNTLjSJ-J9IgQElZdDOUalOpTTN0Moe5OtJBPwJKoVrGpA63UHtomy5zfclJtnTSCZbwvaSDVCsVPC62smry6XjwNrwSigfU0jRqKUrw6OsS2z9LdhAnM6uM36ta3eLM2rGpjw4e8Nk,.AspNetCore.Antiforgery.fxCKZlL0Ce4=CfDJ8HnmQt_cM7hPkPLoai808rWr00lEtE86bVrPx44iwtCZ75mBS6VgxR2HTVnG_MmIf_DKhWVh8qwPYGRUMplCHOVulfTK-S3FrIrTY5jkUfKl9pw0aCPZLe8Lwm0eRrbmDrdbc4OJMrmq9wsO1Tz8J8k

Referer: https://localhost:7228/swagger/index.html

TE: trailers

sec-fetch-dest: empty

sec-fetch-mode: cors

sec-fetch-site: same-origin