急に必要になったのでメモ。
C# Slenium.WebDriver(chrome)を使ったPDFレンダリング出力方法についてのメモ。
- プロジェクトにnugetで以下をインストール
- Selenium.WebDriver
- WebDriverManager
- urlをPDF出力(outputPdf)する関数PrintToPdfは以下
using System; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; public void PrintToPdf(String url, String outputPdf) { // WebDriver作成 var options = new ChromeOptions(); options.AddArgument("--headless"); // ヘッドレス var driverService = ChromeDriverService.CreateDefaultService(); driverService.HideCommandPromptWindow = true; // コマンドプロンプト非表示 using (var driver = new ChromeDriver(driverService, options)) { // サイトを開く driver.Navigate().GoToUrl(url); // 印刷設定 var printOptions = new PrintOptions() { Orientation = PrintOrientation.Portrait, OutputBackgroundImages = true, }; //printOptions.AddPageToPrint(5); // ページ設定 // 印刷 var print = driver.Print(printOptions); print.SaveAsFile(outputPdf); // PDF出力 driver.Quit(); } }
コマンドプロンプトを非表示にしてますが、タイミングによって一瞬表示されちゃうのがイマイチ。