123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- 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.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 HTML2ITEMV2Translator _HTML2ITEMV2Translator { get; set; }
- public HtexController(PPTX2HTEXTranslator htexGenerator, DOXC2HTMLTranslator DOXC2HTMLTranslator, HTML2ITEMTranslator HTML2ITEMTranslator, HTML2IMGSTranslator HTML2IMGSTranslator, HTML2ITEMV2Translator HTML2ITEMV2Translator ,IWebHostEnvironment webHostEnvironment) {
- _DOXC2HTMLTranslator = DOXC2HTMLTranslator;
- _HTML2ITEMTranslator = HTML2ITEMTranslator;
- _HTML2IMGSTranslator = HTML2IMGSTranslator;
- _HTML2ITEMV2Translator = HTML2ITEMV2Translator;
- this.htexGenerator = htexGenerator;
- string path = webHostEnvironment.ContentRootPath + "/Config/LangConfig.json";
- FileStream fs = new FileStream(path, System.IO.FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
- StreamReader sr = new StreamReader(fs, System.Text.Encoding.UTF8);
- string line;
- StringBuilder builder = new StringBuilder();
- while ((line = sr.ReadLine()) != null)
- {
- builder.Append(line.ToString());
- }
- sr.Close();
- string text = builder.ToString();
- // langConfigs = text.FromJson<List<LangConfig>>();
- }
- [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(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(); }
- request.TryGetProperty("lang", out JsonElement lang);
- var exercises = _HTML2ITEMV2Translator.Translate(htmlString.GetString(), lang);
- return Ok(exercises);
- }
- /// <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 });
- }
- }
- }
|