Advertisement
andruhovski

Task #1053: Query attributes

Oct 16th, 2017
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.60 KB | None | 0 0
  1. using Aspose.Html;
  2. using Aspose.Html.Drawing;
  3. using Aspose.Html.Rendering;
  4. using Aspose.Html.Rendering.Image;
  5. using System;
  6.  
  7. namespace Task1053
  8. {
  9.     class Program
  10.     {
  11.         private static HTMLDocument _document = new HTMLDocument();
  12.         static void Main(string[] args)
  13.         {
  14.             GenerateSampleHtml5Document();
  15.             RenderSimpleExample(@"C:\Aspose\files\jquery.jpg");
  16.             Console.WriteLine(_document.DocumentElement.OuterHTML);
  17.             System.IO.File.WriteAllText(@"C:\Aspose\files\jquery.html", _document.DocumentElement.OuterHTML);
  18.             //_document.Save(@"C:\Aspose\files\jquery1.html");
  19.         }
  20.  
  21.         private static void GenerateSampleHtml5Document()
  22.         {
  23.             _document.InsertBefore(_document.CreateDocumentType("html", "", "", ""), _document.DocumentElement);
  24.             _document.DocumentElement.SetAttribute("lang", "en");
  25.             _document.Title = "Page for IMG rendering demo";
  26.  
  27.             var head = _document.GetElementsByTagName("head")[0];
  28.             var metaCharSet = (HTMLMetaElement)_document.CreateElement("meta");
  29.             metaCharSet.SetAttribute("charset", "UTF-8");
  30.  
  31.             var metaViewPort = (HTMLMetaElement)_document.CreateElement("meta");
  32.             metaViewPort.Name = "viewport";
  33.             metaViewPort.Content = "width=device-width, initial-scale=1";
  34.  
  35.             var linkElement1 = (HTMLLinkElement)_document.CreateElement("link");
  36.             linkElement1.Href = "http://cdn.myunv.com/css/uecore.css";
  37.             linkElement1.Rel = "stylesheet";
  38.  
  39.             var linkElement2 = (HTMLLinkElement)_document.CreateElement("link");
  40.             //linkElement2.Href = "https://fonts.googleapis.com/css?family=Germania+One";
  41.             linkElement2.Href = "https://fonts.googleapis.com/css?family=Merriweather|Roboto+Slab";
  42.             linkElement2.Rel = "stylesheet";
  43.  
  44.             var scriptElement = (HTMLScriptElement)_document.CreateElement("script");
  45.             scriptElement.Src = "https://code.jquery.com/jquery-1.9.1.min.js";
  46.  
  47.             var style = (HTMLStyleElement)_document.CreateElement("style");
  48.             style.TextContent = "h1 {color: red; font-family: 'Roboto Slab', serif;}" +
  49.                                 "h2 {color:green} " +
  50.                                 "table { border: 1px dashed black}" +
  51.                                 "p {font-family: 'Merriweather', serif;}" +
  52.                                 "p { margin: 8px;  font-size: 16px;}" +
  53.                                 ".selected { color: blue; }" +
  54.                                 ".highlight { background: yellow; }";
  55.             head.AppendChild(metaCharSet);
  56.             head.AppendChild(metaViewPort);
  57.             head.AppendChild(linkElement1);
  58.             head.AppendChild(linkElement2);
  59.             head.AppendChild(style);
  60.             head.AppendChild(scriptElement);
  61.  
  62.             var header1 = (HTMLHeadingElement)_document.CreateElement("h1");
  63.             header1.TextContent = "Heading 1";
  64.             var header2 = (HTMLHeadingElement)_document.CreateElement("h2");
  65.             header2.TextContent = "Heading 2";
  66.  
  67.             _document.DocumentElement.LastElementChild.AppendChild(header1);
  68.             _document.DocumentElement.LastElementChild.AppendChild(header2);
  69.  
  70.             var colors = new[] { "red", "orange", "black", "green", "blue", "indigo", "violet" };
  71.             var alignment = new[] { "left", "right", "center" };
  72.             for (var i = 0; i < 2; i++)
  73.             {
  74.                 var paragraph = (HTMLParagraphElement)_document.CreateElement("p");
  75.                 paragraph.Id = $"par{i}";
  76.                 //paragraph.Style.SetProperty("font-weight", i % 2 == 0 ? "700" : "400", "");
  77.                 paragraph.Style.SetProperty("color", colors[i % 7], "");
  78.                 //paragraph.Style.SetProperty("text-align", alignment[i % 3], "");
  79.                 paragraph.TextContent = LoremNET.Lorem.Paragraph(5, 4);
  80.                 _document.DocumentElement.LastElementChild.AppendChild(paragraph);
  81.             }
  82.  
  83.             HTMLImageElement img = (HTMLImageElement)_document.CreateElement("img");
  84.             img.Src = "http://lorempixel.com/400/200/sports/1";
  85.             img.Alt = "Placeholder 400x200";
  86.             img.Title = "Placeholder image";
  87.            // _document.DocumentElement.LastElementChild.AppendChild(img);
  88.             //Adding an ordered list
  89.             HTMLOListElement orderedListElement = (HTMLOListElement)_document.CreateElement("ol");
  90.             for (var i = 0; i < 10; i++)
  91.             {
  92.                 HTMLLIElement listItem = (HTMLLIElement)_document.CreateElement("li");
  93.                 listItem.TextContent = $"Item {i + 1}";
  94.                 orderedListElement.AppendChild(listItem);
  95.             }
  96.             _document.DocumentElement.LastElementChild.AppendChild(orderedListElement);
  97.  
  98.             // Adding simple table 4x3
  99.             var table = (HTMLTableElement)_document.CreateElement("table");
  100.             var tBody = (HTMLTableSectionElement)_document.CreateElement("tbody");
  101.             for (var i = 0; i < 4; i++)
  102.             {
  103.                 var row = (HTMLTableRowElement)_document.CreateElement("tr");
  104.                 row.Id = "trow_" + i;
  105.                 for (var j = 0; j < 3; j++)
  106.                 {
  107.                     var cell = (HTMLTableCellElement)_document.CreateElement("td");
  108.                     cell.Id = $"cell{i}_{j}";
  109.                     cell.TextContent = "Cell " + j;
  110.                     row.AppendChild(cell);
  111.                 }
  112.                 tBody.AppendChild(row);
  113.             }
  114.             table.AppendChild(tBody);
  115.             _document.DocumentElement.LastElementChild.AppendChild(table);
  116.             var script1 = (HTMLScriptElement)_document.CreateElement("script");
  117.             script1.TextContent = "$(\"p\").addClass(\"selected\")";
  118.             _document.DocumentElement.LastElementChild.AppendChild(script1);
  119.         }
  120.         private static void RenderSimpleExample(string outputImgFile)
  121.         {
  122.             var imgOptions = new ImageRenderingOptions
  123.             {
  124.                 Format = ImageFormat.Jpeg,
  125.                 PageSetup =
  126.                 {
  127.                     AnyPage = new Page(new Aspose.Html.Drawing.Size(Unit.FromPixels(1366),Unit.FromPixels(768)))
  128.                 }
  129.             };
  130.  
  131.             var imgDevice = new ImageDevice(imgOptions, outputImgFile);
  132.             var renderer = new HtmlRenderer();
  133.  
  134.             Console.WriteLine("Render JPG file started...");
  135.             renderer.Render(imgDevice, _document);
  136.             Console.WriteLine("Render JPG file finished.");
  137.         }
  138.     }
  139. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement