Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using Aspose.Html.Dom;
- using Aspose.Html.IO;
- using Aspose.Html.Rendering.Image;
- using Aspose.Html.Drawing;
- using Aspose.Html;
- using Aspose.Html.Rendering;
- using System.Diagnostics;
- using System.IO;
- namespace Task1068
- {
- class Program
- {
- private static HTMLDocument _document=new HTMLDocument();
- static void Main()
- {
- GenerateSampleHtml5Document();
- RenderSimpleExample(@"C:\Aspose\files\filter_h1.jpg");
- }
- private static void RenderSimpleExample(string outputImgFile)
- {
- var imgOptions = new ImageRenderingOptions
- {
- Format = ImageFormat.Jpeg,
- PageSetup =
- {
- AnyPage = new Page(new Aspose.Html.Drawing.Size(Unit.FromPixels(1366),Unit.FromPixels(768)))
- }
- };
- var imgDevice = new MyImageDevice(imgOptions, outputImgFile);
- var renderer = new HtmlRenderer();
- Console.WriteLine("Render JPG file started...");
- renderer.Render(imgDevice, _document);
- Console.WriteLine("Render JPG file finished.");
- }
- private static void GenerateSampleHtml5Document()
- {
- _document.InsertBefore(_document.CreateDocumentType("html", "", "", ""), _document.DocumentElement);
- _document.DocumentElement.SetAttribute("lang", "en");
- _document.Title = "Page for IMG rendering demo";
- var head = _document.GetElementsByTagName("head")[0];
- var metaCharSet = (HTMLMetaElement)_document.CreateElement("meta");
- metaCharSet.SetAttribute("charset", "UTF-8");
- var metaViewPort = (HTMLMetaElement)_document.CreateElement("meta");
- metaViewPort.Name = "viewport";
- metaViewPort.Content = "width=device-width, initial-scale=1";
- var linkElement1 = (HTMLLinkElement)_document.CreateElement("link");
- linkElement1.Href = "http://cdn.myunv.com/css/uecore.css";
- linkElement1.Rel = "stylesheet";
- var linkElement2 = (HTMLLinkElement)_document.CreateElement("link");
- //linkElement2.Href = "https://fonts.googleapis.com/css?family=Germania+One";
- linkElement2.Href = "https://fonts.googleapis.com/css?family=Merriweather|Roboto+Slab";
- linkElement2.Rel = "stylesheet";
- var style = (HTMLStyleElement)_document.CreateElement("style");
- //style.TextContent = "h1 {color: red;} h2 {color:green} table { border: 1px dashed black}" +
- // "h2 {page-break-after: always; } p {font-family: 'Germania One', cursive;}" + "@page { size: 7in 9.25in; margin: 27mm 16mm 27mm 16mm; }";
- style.TextContent = "h1 {color: red; font-family: 'Roboto Slab', serif;}" +
- "h2 {color:green} " +
- "table { border: 1px dashed black}" +
- "p {font-family: 'Merriweather', serif;}";
- //"p {font-family: 'Germania One', cursive;}";
- head.AppendChild(metaCharSet);
- head.AppendChild(metaViewPort);
- head.AppendChild(linkElement1);
- head.AppendChild(linkElement2);
- head.AppendChild(style);
- var header1 = (HTMLHeadingElement)_document.CreateElement("h1");
- header1.TextContent = "Heading 1";
- var header2 = (HTMLHeadingElement)_document.CreateElement("h2");
- header2.TextContent = "Heading 2";
- _document.DocumentElement.LastElementChild.AppendChild(header1);
- _document.DocumentElement.LastElementChild.AppendChild(header2);
- var colors = new[] { "red", "orange", "black", "green", "blue", "indigo", "violet" };
- var alignment = new[] { "left", "right", "center" };
- for (var i = 0; i < 2; i++)
- {
- var paragraph = (HTMLParagraphElement)_document.CreateElement("p");
- paragraph.Id = $"par{i}";
- //paragraph.Style.SetProperty("font-weight", i % 2 == 0 ? "700" : "400", "");
- paragraph.Style.SetProperty("color", colors[i % 7], "");
- //paragraph.Style.SetProperty("text-align", alignment[i % 3], "");
- paragraph.TextContent = LoremNET.Lorem.Paragraph(50, 25);
- _document.DocumentElement.LastElementChild.AppendChild(paragraph);
- }
- HTMLImageElement img = (HTMLImageElement)_document.CreateElement("img");
- img.Src = "http://lorempixel.com/400/200/sports/1";
- img.Alt = "Placeholder 400x200";
- img.Title = "Placeholder image";
- _document.DocumentElement.LastElementChild.AppendChild(img);
- //Adding an ordered list
- HTMLOListElement orderedListElement = (HTMLOListElement)_document.CreateElement("ol");
- for (var i = 0; i < 10; i++)
- {
- HTMLLIElement listItem = (HTMLLIElement)_document.CreateElement("li");
- listItem.TextContent = $"Item {i + 1}";
- orderedListElement.AppendChild(listItem);
- }
- _document.DocumentElement.LastElementChild.AppendChild(orderedListElement);
- // Adding simple table 4x3
- var table = (HTMLTableElement)_document.CreateElement("table");
- var tBody = (HTMLTableSectionElement)_document.CreateElement("tbody");
- for (var i = 0; i < 4; i++)
- {
- var row = (HTMLTableRowElement)_document.CreateElement("tr");
- row.Id = "trow_" + i;
- for (var j = 0; j < 3; j++)
- {
- var cell = (HTMLTableCellElement)_document.CreateElement("td");
- cell.Id = $"cell{i}_{j}";
- cell.TextContent = "Cell " + j;
- row.AppendChild(cell);
- }
- tBody.AppendChild(row);
- }
- table.AppendChild(tBody);
- _document.DocumentElement.LastElementChild.AppendChild(table);
- }
- }
- internal class MyImageDevice : ImageDevice
- {
- public override bool BeginElement(Element element, System.Drawing.RectangleF rect)
- {
- Trace.WriteLine(element.TagName+" "+rect.ToString());
- return !element.TagName.Equals("H2") && base.BeginElement(element, rect);
- }
- public MyImageDevice(ImageRenderingOptions options, ICreateStreamProvider streamProvider) : base(options, streamProvider) { }
- public MyImageDevice(ImageRenderingOptions options, string file) : base(options, file) { }
- public MyImageDevice(ImageRenderingOptions options, Stream stream) : base(options, stream) { }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement