v0.1 Screenshots and PDF generation
The first milestone on the roadmap is completed.
PDF support
You can export any page to PDF file.
var browser = await PuppeteerSharp.Puppeteer.LaunchAsync(options, chromiumRevision);
var page = await browser.NewPageAsync();
await page.GoToAsync("https://www.google.com");
await page.PdfAsync(outputFile);You can also get a PDF in a stream.
var browser = await PuppeteerSharp.Puppeteer.LaunchAsync(options, chromiumRevision);
var page = await browser.NewPageAsync();
await page.GoToAsync("https://www.google.com");
var stream = await page.PdfStreamAsync();
await UploadToAzure(stream);PdfAsync supports the following options:
- Scale
<decimal>Scale of the webpage rendering. Defaults to 1. - DisplayHeaderFooter
<bool>Display header and footer. Defaults to false. - HeaderTemplate
<string>HTML template for the print header. - FooterTemplate
<string>HTML template for the print footer. Should use the same format as the HeaderTemplate. - PrintBackground
<bool>Print background graphics. Defaults to false. - Landscape
<boolean>Paper orientation. Defaults to false. - PageRanges
<string>Paper ranges to print, e.g., '1-5, 8, 11-13'. Defaults to the empty string, which means print all pages. - Format
<string>Paper format. If set, takes priority over width or height options. Defaults to 'Letter'. - Width
<string>Paper width, accepts values labeled with units. - Height
<string>Paper height, accepts values labeled with units. - Margin
<MarginOptions>Paper margins, defaults to none. - Top
<string>Top margin, accepts values labeled with units. - Right
<string>Right margin, accepts values labeled with units. - Bottom
<string>Bottom margin accepts values labeled with units. - Left
<string>Left margin, accepts values labeled with units.
Documentation adapted from the original Puppeteer repo.
Screenshot support
You can take a screenshot of a page (the visible part based on the viewport), a full page or a part of it.
var browser = await PuppeteerSharp.Puppeteer.LaunchAsync(options, chromiumRevision);
var page = await browser.NewPageAsync();
await page.SetViewport(new ViewPortOptions
{
Width = 500,
Height = 500
});
await page.GoToAsync("https://www.google.com");
await page.ScreenshotAsync(outputFile);You can also use ScreenshotStreamAsync to get a stream instead of a file.
The ScreenshotAsync method supports the following options:
- Type
<string>Specify screenshot type, can be either jpeg or png. Defaults to 'png'. - Quality
<decimal?>The quality of the image, between 0-100. Not applicable to png images. - FullPage
<bool>When true, takes a screenshot of the full scrollable page. Defaults to false. - Clip
<Clip>An object which specifies clipping region of the page. Should have the following fields:- X
<int>x-coordinate of top-left corner of clip area. - Y
<int>y-coordinate of top-left corner of clip area. - Width
<int>width of clipping area. - Height
<number>height of clipping area.
- X
- OmitBackground
<bool>Hides default white background and allows capturing screenshots with transparency. Defaults to false.
Documentation adapted from the original Puppeteer repo.