123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- using HTEXLib;
- using HTEXLib.Builders;
- using HTEXLib.DOCX.Models;
- using HTEXLib.Helpers.ShapeHelpers;
- using HTEXLib.Translator;
- using Microsoft.AspNetCore.Hosting;
- using Microsoft.AspNetCore.Http;
- using Microsoft.AspNetCore.Mvc;
-
- using System;
- using System.Collections.Generic;
- using System.Drawing.Imaging;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Text.Json;
- using System.Threading.Tasks;
- namespace HTEXWeb.Controllers
- {
- [ApiController]
- [Route("htex")]
- public class HtexController: ControllerBase
- {
- public PPTX2HTEXTranslator htexGenerator { get; set; }
- public DOXC2HTMLTranslator _DOXC2HTMLTranslator { get; set; }
- public HTML2ITEMTranslator _HTML2ITEMTranslator { get; set; }
- // public HTML2IMGSTranslator _HTML2IMGSTranslator { get; set; }
- public HTML2ITEMV3Translator _HTML2ITEMV3Translator { get; set; }
- public HtexController(PPTX2HTEXTranslator htexGenerator, DOXC2HTMLTranslator DOXC2HTMLTranslator, // HTML2IMGSTranslator HTML2IMGSTranslator,
- HTML2ITEMV3Translator HTML2ITEMV3Translator) {
- _DOXC2HTMLTranslator = DOXC2HTMLTranslator;
- // _HTML2IMGSTranslator = HTML2IMGSTranslator;
- _HTML2ITEMV3Translator = HTML2ITEMV3Translator;
- this.htexGenerator = htexGenerator;
- }
- [HttpPost("generator")]
- public object Generator([FromForm] IFormFile file)
- {
- return JsonSerializer.Deserialize<JsonElement>(JsonHelper.ToJson(htexGenerator.Translate(file.OpenReadStream()),ignoreNullValue:false));
- }
- /// <summary>
- /// docUrl
- /// folder
- /// shaCode
- ///
- /// UploadWord
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- [HttpPost("upload-word")]
- [RequestSizeLimit(102_400_000_00)] //最大10000m左右
- public IActionResult UploadWord([FromForm] IFormFile file)
- {
- var doc = _DOXC2HTMLTranslator.Translate(file.OpenReadStream());
- return Ok(new { htmlString =doc});
- }
- /// <summary>
- /// htmlString AnalyzeHtml
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- [HttpPost("parse-html")]
- public IActionResult AnalyzeHtml(JsonElement request)
- {
- if (!request.TryGetProperty("htmlString", out JsonElement htmlString)) { return BadRequest(); }
- (List<HTEXLib.DOCX.Models.ItemInfo> tests, List<string> error) = _HTML2ITEMV3Translator.Translate(htmlString.GetString());
- return Ok(new { tests, error });
- }
- /// <summary>
- /// htmlString AnalyzeHtml
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- //[HttpPost("html-screenshot")]
- //public IActionResult HtmlScreenshot(JsonElement request)
- //{
- // request.TryGetProperty("htmlUrl",out JsonElement htmlUrl);
- // var base64 = "data:image/png;base64,"+ _HTML2IMGSTranslator.PageScreenshotAll($"{htmlUrl}");
- // return Ok(new { base64 });
- //}
- /// <summary>
- /// htmlString AnalyzeHtml
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- [HttpPost("parse-emf")]
- public IActionResult EmfToPng(JsonElement request)
- {
- if (!request.TryGetProperty("htmlString", out JsonElement htmlString)) { return BadRequest(); }
- MemoryStream memoryStream = new MemoryStream();
- Metafile inFile = new Metafile(memoryStream);
- //Metafile outFile = new Metafile(memoryStream, Graphics.FromHwnd(IntPtr.Zero).GetHdc(), EmfType.EmfOnly);
- inFile.Save(memoryStream, ImageFormat.Png);
- var ba = memoryStream.ToArray();
- var base64 = System.Convert.ToBase64String(ba);
- // var exercises = _HTML2ITEMV3Translator.Translate(htmlString.GetString());
- return Ok(base64);
- }
- }
- }
|