1、安装引用PuppeteerSharp
1)使用Nuget界面管理器
直接分别搜索 "PuppeteerSharp",找到对应的点安装即可。
相关文档:VS(Visual Studio)中Nuget的使用
2)使用Package Manager命令安装
PM> Install-Package PuppeteerSharp
2、使用PuppeteerSharp将URL中HTML转换PDF
Puppeteer Sharp 是官方Node.JS Puppeteer API的 .NET API,使用PuppeteerSharp将HTML转换PDF。转换代码如下,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using PuppeteerSharp;
using PuppeteerSharp.Media;
namespace ConsoleApplication
{
class Program
{
public static string outputFile { get; private set; }
async static void Main(string[] args)
{
using var browserFetcher = new BrowserFetcher();
outputFile = "/home/cjavapy.pdf";
await browserFetcher.DownloadAsync(BrowserFetcher.DefaultChromiumRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
Headless = true
});
var page = await browser.NewPageAsync();
await page.GoToAsync("http://www.google.com");
await page.PdfAsync(outputFile, new PdfOptions
{
Format = PaperFormat.A4,
DisplayHeaderFooter = true,
MarginOptions = new MarginOptions
{
Top = "20px",
Right = "20px",
Bottom = "40px",
Left = "20px"
},
FooterTemplate = "Footer Text"
});
Console.ReadKey();
}
}
}
3、将 HTML 字符串转换为 PDF
HTML字符串也可以使用PuppeteerSharp转换为PDF。代码如下,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using PuppeteerSharp;
using PuppeteerSharp.Media;
namespace ConsoleApplication
{
class Program
{
public static string outputFile { get; private set; }
async static void Main(string[] args)
{
using var browserFetcher = new BrowserFetcher();
outputFile = "/home/cjavapy.pdf";
await browserFetcher.DownloadAsync(BrowserFetcher.DefaultChromiumRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
Headless = true
});
//var page = await browser.NewPageAsync();
using (var page = await browser.NewPageAsync())
{
await page.SetContentAsync("www.cjavapy.com");
var result = await page.GetContentAsync();
await page.PdfAsync(outputFile, new PdfOptions
{
Format = PaperFormat.A4,
DisplayHeaderFooter = true,
MarginOptions = new MarginOptions
{
Top = "20px",
Right = "20px",
Bottom = "40px",
Left = "20px"
},
FooterTemplate = "Footer Text"
});
Console.ReadKey();
}
}
}
}