Advertisement
andruhovski

Task 1047

Oct 6th, 2017
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.02 KB | None | 0 0
  1. using System;
  2. using Aspose.Html;
  3. using Aspose.Html.Rendering;
  4. using Aspose.Html.Rendering.Pdf;
  5.  
  6. namespace Task1047
  7. {
  8.     class Program
  9.     {
  10.         private static HTMLDocument _document;
  11.  
  12.         private static void Main()
  13.         {          
  14.             _document = new HTMLDocument();
  15.             GenerateSampleHtml5Document();
  16.             RenderEncryptedPdf();
  17.         }
  18.  
  19.         private static void RenderEncryptedPdf()
  20.         {
  21.  
  22.             var options = new PdfRenderingOptions
  23.             {
  24.                 JpegQuality = 10
  25.             };
  26.             Console.WriteLine(options.PageSetup.AnyPage.Margin.Top.IsAuto);
  27.             Console.WriteLine(options.PageSetup.AnyPage.Margin.Bottom.IsAuto);
  28.             Console.WriteLine(options.PageSetup.AnyPage.Margin.Left.IsAuto);
  29.             Console.WriteLine(options.PageSetup.AnyPage.Margin.Right.IsAuto);
  30.             Console.WriteLine(options.PageSetup.AnyPage.Size.Width);
  31.             Console.WriteLine(options.PageSetup.AnyPage.Size.Height);
  32.             const string outputfile = @"C:\aspose\pdf\output06.pdf";
  33.             Console.WriteLine("Render PDF file started...");
  34.             var device = new PdfDevice(options, outputfile);
  35.             var renderer = new HtmlRenderer();
  36.             renderer.Render(device, _document);
  37.             Console.WriteLine("Render PDF file finished.");
  38.         }
  39.  
  40.         private static void GenerateSampleHtml5Document()
  41.         {
  42.             _document.InsertBefore(_document.CreateDocumentType("html", "", "", ""), _document.DocumentElement);
  43.             _document.DocumentElement.SetAttribute("lang", "en");
  44.             _document.Title = "Page for PDF rendering demo";
  45.  
  46.             var head = _document.GetElementsByTagName("head")[0];
  47.             var metaCharSet = (HTMLMetaElement) _document.CreateElement("meta");
  48.             metaCharSet.SetAttribute("charset", "UTF-8");
  49.  
  50.             var metaViewPort = (HTMLMetaElement) _document.CreateElement("meta");
  51.             metaViewPort.Name = "viewport";
  52.             metaViewPort.Content = "width=device-width, initial-scale=1";
  53.  
  54.             var linkElement1 = (HTMLLinkElement) _document.CreateElement("link");
  55.             linkElement1.Href = "http://cdn.myunv.com/css/uecore.css";
  56.             linkElement1.Rel = "stylesheet";
  57.  
  58.             var linkElement2 = (HTMLLinkElement) _document.CreateElement("link");
  59.             linkElement2.Href = "https://fonts.googleapis.com/css?family=Lato";
  60.             linkElement2.Rel = "stylesheet";
  61.  
  62.             var style = (HTMLStyleElement) _document.CreateElement("style");
  63.             //style.TextContent = "h1 {color: red;} h2 {color:green} table { border: 1px dashed black}" +
  64.             //    "h2 {page-break-after: always; } p {font-family: 'Germania One', cursive;}" + "@page { size: 7in 9.25in; margin: 27mm 16mm 27mm 16mm; }";
  65.             style.TextContent = "h1 {color: red;} " +
  66.                                 "h2 {color:green} " +
  67.                                 "table { border: 1px dashed black}" +
  68.                                 "p {font-family: 'Lato', sans-serif;}" +
  69.                                 "#coverPage {page-break-after: always; display: table}";
  70.  
  71.             head.AppendChild(metaCharSet);
  72.             head.AppendChild(metaViewPort);
  73.             head.AppendChild(linkElement1);
  74.             head.AppendChild(linkElement2);
  75.             head.AppendChild(style);
  76.  
  77.             const string coverPageHtmlContent = "<div id=\"coverPage\"style=\"height: 15cm; overflow: hidden;\">\r\n" +
  78.                                                 "<div style=\"display: table-cell; vertical-align: middle;\">\r\n" +
  79.                                                 "<div>\r\n" +
  80.                                                 "<h1>Cover Page<h1>\r\n" +
  81.                                                 "</div>\r\n" +
  82.                                                 "</div>\r\n" +
  83.                                                 "</div>";
  84.  
  85.             var coverPageElement = _document.CreateElement("div");
  86.             coverPageElement.InnerHTML = coverPageHtmlContent;
  87.  
  88.             var header1 = (HTMLHeadingElement) _document.CreateElement("h1");
  89.             header1.TextContent = "Heading 1";
  90.             var header2 = (HTMLHeadingElement) _document.CreateElement("h2");
  91.             header2.TextContent = "Heading 2";
  92.  
  93.             //_document.DocumentElement.LastElementChild.AppendChild(coverPageElement);
  94.             _document.DocumentElement.LastElementChild.AppendChild(header1);
  95.             _document.DocumentElement.LastElementChild.AppendChild(header2);
  96.  
  97.             var categories = new[] {"dog", "cat", "bird", "cow"};
  98.             for (var i = 0; i < 10; i++)
  99.             {
  100.                 var img = (HTMLImageElement) _document.CreateElement("img");
  101.                 img.Src = $"http://loremflickr.com/400/200/{categories[i%4]}";
  102.                 img.Alt = "Placeholder 400x200";
  103.                 img.Title = "Placeholder image";
  104.                 _document.DocumentElement.LastElementChild.AppendChild(img);
  105.             }
  106.         }
  107.     }
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement