using System;
using Aspose.Html;
using Aspose.Html.Drawing;
using Aspose.Html.Rendering;
using Aspose.Html.Rendering.Pdf;
using Aspose.Html.Rendering.Xps;
namespace Task1048
{
class Program
{
private static HTMLDocument _document;
private static readonly Length Height = Unit.FromMillimeters(297);
private static readonly Length Width = Unit.FromMillimeters(210);
private static readonly Size PageSizeA4 = new Size(Width, Height);
private static void Main()
{
_document = new HTMLDocument();
GenerateSampleHtml5Document();
RenderSimplePdf();
}
private static void RenderWithCoverPage()
{
Console.WriteLine(_document.DocumentElement.InnerHTML);
var margin = new Margin(Unit.FromMillimeters(30)); //all margins are 30 mm
var options = new XpsRenderingOptions();
options.PageSetup.FirstPage = new Page(PageSizeA4, margin);
const string outputfile = @"C:\aspose\pdf\output06.pdf";
Console.WriteLine("Render PDF file started...");
var device = new XpsDevice(options, outputfile);
var renderer = new HtmlRenderer();
renderer.Render(device, _document);
Console.WriteLine("Render PDF file finished.");
}
private static void RenderMirrorPages()
{
var marginsLeft = new Margin(
Unit.FromMillimeters(30), // left
Unit.FromMillimeters(10), // top
Unit.FromMillimeters(15), // right
Unit.FromMillimeters(20));// bottom
var marginsRight = new Margin(
Unit.FromMillimeters(15), // left
Unit.FromMillimeters(10), // top
Unit.FromMillimeters(30), // right
Unit.FromMillimeters(20));// bottom
var options = new PdfRenderingOptions();
options.PageSetup.SetLeftRightPage(
new Page(PageSizeA4, marginsLeft),
new Page(PageSizeA4, marginsRight));
const string outputfile = @"C:\aspose\pdf\output03.pdf";
Console.WriteLine("Render PDF file started...");
var device = new PdfDevice(options, outputfile);
var renderer = new HtmlRenderer();
renderer.Render(device, _document);
Console.WriteLine("Render PDF file finished.");
}
private static void RenderAdvancedPdf()
{
var width = Unit.FromMillimeters(210);
var height = Unit.FromMillimeters(297);
var pageSizeA4 = new Size(width, height);
var margins = new Margin(
Unit.FromMillimeters(15), // left
Unit.FromMillimeters(10), // top
Unit.FromMillimeters(15), // right
Unit.FromMillimeters(20));// bottom
var options = new PdfRenderingOptions { PageSetup = { AnyPage = new Page(pageSizeA4, margins) } };
const string outputfile = @"C:\aspose\pdf\output02.pdf";
Console.WriteLine("Render PDF file started...");
var device = new PdfDevice(options, outputfile);
var renderer = new HtmlRenderer();
renderer.Render(device, _document);
Console.WriteLine("Render PDF file finished.");
}
private static void RenderSimplePdf()
{
var options = new PdfRenderingOptions();
Console.WriteLine(options.PageSetup.AnyPage.Margin.Top.IsAuto);
Console.WriteLine(options.PageSetup.AnyPage.Margin.Bottom.IsAuto);
Console.WriteLine(options.PageSetup.AnyPage.Margin.Left.IsAuto);
Console.WriteLine(options.PageSetup.AnyPage.Margin.Right.IsAuto);
Console.WriteLine(options.PageSetup.AnyPage.Size.Width);
Console.WriteLine(options.PageSetup.AnyPage.Size.Height);
const string outputfile = @"C:\aspose\pdf\output01.pdf";
Console.WriteLine("Render PDF file started...");
var device = new PdfDevice(options, outputfile);
var renderer = new HtmlRenderer();
renderer.Render(device, _document);
Console.WriteLine("Render PDF file finished.");
}
private static void GenerateSampleHtml5Document()
{
_document.InsertBefore(_document.CreateDocumentType("html", "", "", ""), _document.DocumentElement);
_document.DocumentElement.SetAttribute("lang", "en");
_document.Title = "Page for PDF 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 < 10; 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(10, 5);
_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);
}
}
}
Comments