//
// This code is part of Document Solutions for PDF demos.
// Copyright (c) MESCIUS inc. All rights reserved.
//
using System;
using System.IO;
using System.Drawing;
using GrapeCity.Documents.Pdf;
using GrapeCity.Documents.Text;
using GrapeCity.Documents.Html;
namespace DsPdfWeb.Demos
{
// This sample shows the simplest way to render a web page
// specified by a URL to a PDF (here we render the Google home page).
//
// In this sample we use GcHtmlBrowser to create an instance of HtmlPage
// that loads the specified URI, and then call the HtmlPage.SaveAsPdf()
// method to render the page to PDF.
//
// A different approach that allows you to easily add HTML content
// to a PDF file along with other content is via the extension
// methods GcPdfGraphics.MeasureHtml()/GcPdfGraphics.DrawHtml()
// as demonstrated by HelloWorldHtml and other samples.
// Note that those methods require an instance of GcHtmlBrowser
// to be passed as parameter.
//
// Please see notes in comments at the top of HelloWorldHtml
// sample code for details on adding DsHtml to your projects.
public class RenderPage0
{
public void CreatePDF(Stream stream)
{
// Get a temporary file where the web page will be rendered:
var tmp = Path.GetTempFileName();
// The Uri of the web page to render:
var uri = new Uri("http://www.google.com");
// Create an instance of GcHtmlBrowser that is used to render HTML:
using var browser = Common.Util.NewHtmlBrowser();
// Create an HtmlPage instance rendering the source Uri:
using var htmlPage = browser.NewPage(uri);
// Render the source Web page to the temporary file:
htmlPage.SaveAsPdf(tmp);
// Copy the created PDF from the temp file to target stream:
using (var ts = File.OpenRead(tmp))
ts.CopyTo(stream);
// Clean up:
File.Delete(tmp);
// Done.
}
}
}