Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class PlaceHolderController : Controller
- {
- private const string ContentType = "image/svg+xml; charset=utf-8";
- // GET: PlaceHolder
- public ActionResult Index(string widthStr, string heightStr, string fontColorStr, string bkColorStr)
- {
- var dataDir = Server.MapPath("/Content");
- var document = new SVGDocument(dataDir + "\\template.svg");
- document.RootElement.SetAttribute("width", widthStr);
- document.RootElement.SetAttribute("height", heightStr);
- document.RootElement.SetAttribute("viewBox", $"0 0 {widthStr} {heightStr}");
- var rect = document.GetElementById("rect1") as SVGRectElement;
- if (rect == null) return Content(document.RootElement.OuterHTML, ContentType);
- rect.SetAttribute("width", widthStr);
- rect.SetAttribute("height", heightStr);
- rect.Style.SetProperty("fill", "#" + bkColorStr, string.Empty);
- var text = document.GetElementById("text1") as SVGTextElement;
- if (text == null) return Content(document.RootElement.OuterHTML, ContentType);
- var width = uint.Parse(widthStr);
- var height = uint.Parse(heightStr);
- text.SetAttribute("x", (width / 2).ToString());
- text.SetAttribute("y", (height / 2).ToString());
- text.TextContent = $"{widthStr}x{heightStr}";
- text.Style.SetProperty("font-family", "Arial", "");
- var fontSize = Math.Round(Math.Max(12, Math.Min(.75 * Math.Min(width, height), 0.75 * Math.Max(width, height) / 12)));
- text.Style.SetProperty("font-size", $"{fontSize}px", "");
- text.Style.SetProperty("fill", "#" + fontColorStr, string.Empty);
- return Content(document.RootElement.OuterHTML, ContentType);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement