public static async Task SsList(string URL, string Format) { await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision); var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true }); var page = await browser.NewPageAsync(); await page.GoToAsync(URL); var ScreenShot = new ScreenshotOptions() { FullPage = true }; if (Format == "jpg" || Format == "png") { var change = URL.Replace("/", "_").Replace(":", "_"); await page.ScreenshotAsync($"{change}.{Format}", ScreenShot); await page.CloseAsync(); } else if (Format == "pdf") { var change = URL.Replace("/", "_").Replace(":", "_"); await page.PdfAsync($"{change}.{Format}"); await page.CloseAsync(); } }
/// <summary> /// 保存 Page 页面截图 /// </summary> /// <param name="page">Chromium 的 Page 对象</param> /// <param name="screenshotOptions">ScreenshotOptions 截图选项 【 如果传入空值,则自动实例化一个 ScreenshotOptions 对象 】</param> /// <param name="path">保存截图的绝对路径 【 默认值:程序运行目录\SaveContent\{当前时间}.png 】</param> /// <returns></returns> public static async Task SavePageScreenshotAsync(Page page, ScreenshotOptions screenshotOptions, string path = null) { if (page == null) { throw new Exception("传入了一个空的 Chromium Page 对象。Page == null"); } if (screenshotOptions == null) { screenshotOptions = new ScreenshotOptions(); } if (string.IsNullOrWhiteSpace(path)) { path = SaveContent.SaveContentDirectory + $"{DateTime.Now.ToString("yyyy-MM-dd_HH.mm.ss.ffff")}.png"; } else { if (!Directory.Exists(Path.GetDirectoryName(path))) { Directory.CreateDirectory(Path.GetDirectoryName(path)); } if (Path.GetExtension(path).ToLower() != ".png") { path += ".png"; } } await page.ScreenshotAsync(path, screenshotOptions); }
public async Task <byte[]> CovertHtmlToImageAsync(string html) { byte[] by = new byte[0]; var options = new LaunchOptions { Headless = true, ExecutablePath = "C://Program Files (x86)//Google//Chrome//Application//chrome.exe" // ExecutablePath = HttpContext.Server.MapPath($"~//Chrome//Chrome-bin/chrome.exe"), }; using (var browser = await Puppeteer.LaunchAsync(options)) using (var page = await browser.NewPageAsync()) { await page.SetContentAsync(html, new NavigationOptions { WaitUntil = new[] { WaitUntilNavigation.Networkidle0 } }); var result = await page.GetContentAsync(); var imOptions = new ScreenshotOptions { Type = ScreenshotType.Jpeg, Quality = 100, FullPage = true, }; by = await page.ScreenshotDataAsync(imOptions); } return(by); }
public async Task CovertHtmlToImage(string html, string ouputpdf) { try { var options = new LaunchOptions { Headless = true, ExecutablePath = "C://Program Files (x86)//Google//Chrome//Application//chrome.exe" // ExecutablePath = HttpContext.Server.MapPath($"~//Chrome//Chrome-bin/chrome.exe"), }; using (var browser = await Puppeteer.LaunchAsync(options)) using (var page = await browser.NewPageAsync()) { await page.SetContentAsync(html, new NavigationOptions { WaitUntil = new[] { WaitUntilNavigation.Networkidle0 } }); var result = await page.GetContentAsync(); var imOptions = new ScreenshotOptions { Type = ScreenshotType.Jpeg, Quality = 100, FullPage = true, }; await page.ScreenshotAsync(ouputpdf, imOptions); } } catch (Exception ex) { } }
public void ShouldInferScreenshotTypeFromName() { Assert.Equal(ScreenshotType.Jpeg, ScreenshotOptions.GetScreenshotTypeFromFile("Test.jpg")); Assert.Equal(ScreenshotType.Jpeg, ScreenshotOptions.GetScreenshotTypeFromFile("Test.jpe")); Assert.Equal(ScreenshotType.Jpeg, ScreenshotOptions.GetScreenshotTypeFromFile("Test.jpeg")); Assert.Equal(ScreenshotType.Png, ScreenshotOptions.GetScreenshotTypeFromFile("Test.png")); Assert.Null(ScreenshotOptions.GetScreenshotTypeFromFile("Test.exe")); }
public async Task <byte[]> TakeScreenshotAsync(ScreenshotFormat format, ScreenshotOptions options, Viewport viewport) { var response = await _session.SendAsync(new PageScreenshotRequest { MimeType = format == ScreenshotFormat.Jpeg ? ScreenshotMimeType.ImageJpeg : ScreenshotMimeType.ImagePng, FullPage = options.FullPage, Clip = options.Clip, }).ConfigureAwait(false); return(Convert.FromBase64String(response.Data)); }
public static async Task TakeSS(string url, object type, string name) { await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision); var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true, Args = new [] { "--proxy-server=", "--no-sandbox", "--disable-infobars", "--disable-setuid-sandbox", "--ignore-certificate-errors", }, }); try { using (var page = await browser.NewPageAsync()) { Console.WriteLine($"rendering {url}"); await page.GoToAsync(url); Console.WriteLine($"screenshot in progress"); if (type is ScreenshotType) { ScreenshotOptions ssOpt = new ScreenshotOptions() { FullPage = true, Type = (ScreenshotType)type }; await page.ScreenshotAsync(name + (ScreenshotType)type, ssOpt); } else { Console.WriteLine("gengerating pdf"); await page.PdfAsync(name + "pdf"); } await page.WaitForTimeoutAsync(1000); } } catch (System.Exception e) { Console.WriteLine("gagal!"); Console.WriteLine(e); await browser.CloseAsync(); } await browser.CloseAsync(); }
public static async Task PuppeteerScreenshotPage(BotData data, string file, bool fullPage = false, bool omitBackground = false) { data.Logger.LogHeader(); var page = GetPage(data); var options = new ScreenshotOptions { FullPage = fullPage, OmitBackground = omitBackground, Type = omitBackground ? ScreenshotType.Png : ScreenshotType.Jpeg }; await page.ScreenshotAsync(file, options); data.Logger.Log($"Took a screenshot of the {(fullPage ? "full" : "visible")} page and saved it to {file}", LogColors.DarkSalmon); }
public async Task <byte[]> TakeScreenshotAsync(ScreenshotFormat format, ScreenshotOptions options, Viewport viewport) { await Client.SendAsync(new PageBringToFrontRequest()).ConfigureAwait(false); var clip = options.Clip?.ToViewportProtocol(); var result = await Client.SendAsync(new PageCaptureScreenshotRequest { Format = format.ToStringFormat(), Quality = options.Quality, Clip = clip, }).ConfigureAwait(false); return(result.Data); }
public static async Task <string> PuppeteerScreenshotPageBase64(BotData data, bool fullPage = false, bool omitBackground = false) { data.Logger.LogHeader(); var page = GetPage(data); var options = new ScreenshotOptions { FullPage = fullPage, OmitBackground = omitBackground, Type = omitBackground ? ScreenshotType.Png : ScreenshotType.Jpeg }; var base64 = await page.ScreenshotBase64Async(options); data.Logger.Log($"Took a screenshot of the {(fullPage ? "full" : "visible")} page as base64", LogColors.DarkSalmon); return(base64); }
public virtual async Task <Stream> CreateFromScreenshot(string URL, string ChromePath = null, eImageMode ImageMode = eImageMode.None) { var browser = await this.CreateWebBrowser(ChromePath); var webPage = await browser.NewPageAsync(); await webPage.GoToAsync(URL); var screenshotOptions = new ScreenshotOptions { FullPage = true, Quality = 100, Type = ScreenshotType.Jpeg }; return(await webPage.ScreenshotStreamAsync(screenshotOptions)); }
public async Task <string> Execute() { try { // Configures the screenshot ScreenshotOptions screenshotOptions = new ScreenshotOptions { Type = ScreenshotType.Png, OmitBackground = true }; // The file path to be saved string filename = $"{Environment.CurrentDirectory}/wwwroot/{DateTime.Now.ToString("yyyyMMdd_hhmmss")}.png"; await PuppeteerPage.ScreenshotAsync(filename, screenshotOptions); // returns only the last element (filename + extension). return(filename.Split('/')[^ 1]);
public static async Task screenshotFormat(string[] newFile, string Format, string URL) { await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision); var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true }); var page = await browser.NewPageAsync(); await page.GoToAsync(URL); var ScreenShot = new ScreenshotOptions() { FullPage = true }; foreach (string fl in newFile) { if (fl.Contains("screenshot")) { var result = Path.GetFileNameWithoutExtension(fl); var Replace = result.Replace("screenshot-", ""); var counter = int.Parse(Replace) + 1; if (Format == "png" || Format == "jpg") { await page.ScreenshotAsync($"screenshot-0{counter}.{Format}", ScreenShot); } else { await page.PdfAsync($"screenshot-0{counter}.{Format}"); } } } if (Format == "png" || Format == "jpg") { await page.ScreenshotAsync($"screenshot-0{1}.{Format}", ScreenShot); } else { await page.PdfAsync($"screenshot-0{1}.{Format}"); } await page.CloseAsync(); }
private async void button2_Click(object sender, EventArgs e) { //获取最后的标签页 var page = (await browser.PagesAsync()).Last(); var path = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "screenshot.jpg"); //设置截图选项 ScreenshotOptions screenshotOptions = new ScreenshotOptions(); //screenshotOptions.Clip = new PuppeteerSharp.Media.Clip() { Height = 0, Width = 0, X = 0, Y = 0 };//设置截剪区域 screenshotOptions.FullPage = true; //是否截取整个页面 screenshotOptions.OmitBackground = false; //是否使用透明背景,而不是默认白色背景 screenshotOptions.Quality = 100; //截图质量 0-100(png不可用) screenshotOptions.Type = ScreenshotType.Jpeg; //截图格式 await page.ScreenshotAsync(path, screenshotOptions); MessageBox.Show($"截图已经保存至{path}"); }
public static async Task fileName(string url, string nama, string format) { await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision); var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true }); var page = await browser.NewPageAsync(); await page.GoToAsync(url); var optionScreen = new ScreenshotOptions() { FullPage = true }; await page.ScreenshotAsync($"{nama}{format}"); await browser.CloseAsync(); }
public virtual async Task SaveFromScreenshot(string URL, string FilePath, string ChromePath = null) { var browser = await this.CreateWebBrowser(ChromePath); var webPage = await browser.NewPageAsync(); await webPage.GoToAsync(URL); var screenshotOptions = new ScreenshotOptions { FullPage = true, Quality = 100, Type = ScreenshotType.Jpeg }; using (var screenshotStream = await webPage.ScreenshotStreamAsync(screenshotOptions)) using (var image = Image.FromStream(screenshotStream)) image.Save(FilePath); }
public static async Task screenshot(string url, string format) { await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision); var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true }); var page = await browser.NewPageAsync(); await page.GoToAsync(url); var optScreen = new ScreenshotOptions() { FullPage = true }; if (format == "jpg" || format == "png") { if (format == "jpg") { var change = url.Replace("/", "_").Replace(":", "_"); await page.ScreenshotAsync($"{change}.{format}", optScreen); await page.CloseAsync(); } else if (format == "png") { var change = url.Replace("/", "_").Replace(":", "_"); await page.ScreenshotAsync($"{change}.{format}", optScreen); await page.CloseAsync(); } } else if (format == "pdf") { var change = url.Replace("/", "_").Replace(":", "_"); await page.PdfAsync($"{change}.{format}"); await page.CloseAsync(); } }
public static async Task screenshotOutput(string[] newFile, string Output, string URL, string Format) { await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision); var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true }); var page = await browser.NewPageAsync(); await page.GoToAsync(URL); var ScreenShot = new ScreenshotOptions() { FullPage = true }; foreach (string fl in newFile) { if (File.Exists(fl)) { if (Format == "png" || Format == "jpg") { await page.ScreenshotAsync($"{Output}", ScreenShot); } else { await page.PdfAsync($"{Output}"); } } } if (Format == "png" || Format == "jpg") { await page.ScreenshotAsync($"{Output}", ScreenShot); } else { await page.PdfAsync($"{Output}"); } await page.CloseAsync(); }
public async Task <IMagickImage> TakeScreenshot() { // Hide Scroll Bars, Trigger Resize Event, Scroll to top SeleniumUtils.ToggleScrollBars(_driver, false); SeleniumUtils.TriggerJSResizeEvent(_driver); // TODO Hide/Remove elements if told SeleniumUtils.NormalScroll(_driver, 0, 0); // Let the browser catch up await Task.Delay(250); var seOpts = new ScreenshotOptions(); var dimensions = SeleniumUtils.GetPageDimensions(_driver); var shot = SeleniumUtils.MakeAreaScreenshot(_driver, 0, 0, dimensions.PageWidth, dimensions.PageHeight, seOpts); // Show Scrollbars again // TODO UnHide/UnRemove elements if told SeleniumUtils.ToggleScrollBars(_driver, true); return(shot); }
public static async Task <string> Capture(string url, string path) { //return string: path+filename.png var currentDirectory = Directory.GetCurrentDirectory(); var downloadPath = Path.Combine(currentDirectory, "CustomChromium"); Console.WriteLine($"Attemping to set up puppeteer to use Chromium found under directory {downloadPath} "); if (!Directory.Exists(downloadPath)) { Console.WriteLine("Custom directory not found. Creating directory"); Directory.CreateDirectory(downloadPath); } Console.WriteLine("Downloading Chromium..."); var browserFetcherOptions = new BrowserFetcherOptions { Path = downloadPath }; var browserFetcher = new BrowserFetcher(browserFetcherOptions); await browserFetcher.DownloadAsync(BrowserFetcher.DefaultRevision); var executablePath = browserFetcher.GetExecutablePath(BrowserFetcher.DefaultRevision); if (string.IsNullOrEmpty(executablePath)) { Console.WriteLine("Custom Chromium location is empty. Unable to start Chromium. Exiting.\n Press any key to continue"); Console.ReadLine(); } Console.WriteLine($"Attemping to start Chromium using executable path: {executablePath}"); var options = new LaunchOptions { Headless = true, ExecutablePath = executablePath }; using (var browser = await Puppeteer.LaunchAsync(options)) using (var page = await browser.NewPageAsync()) { await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision); await page.SetViewportAsync(new ViewPortOptions { Width = 1920, Height = 1080 }); var waitUntil = new NavigationOptions { Timeout = 0, WaitUntil = new[] { WaitUntilNavigation.Networkidle0 } }; await page.GoToAsync(url, waitUntil); #region Screenshot Dashboard: var optionsScreenShot = new ScreenshotOptions { FullPage = true }; //Đường dẫn lưu file if (!Directory.Exists(path)) { Console.WriteLine("SavePath directory not found. Creating directory"); Directory.CreateDirectory(path); } string date = DateTime.Now.ToString("yyyyMMddHHmmss"); var outputfile = path + "/capture_" + date + ".png"; await page.ScreenshotAsync(outputfile, optionsScreenShot); #endregion await page.CloseAsync(); //return string = path+filename.png return(outputfile); } }
public static async Task screenshotoutput(string url, string output) { await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision); var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true }); var page = await browser.NewPageAsync(); await page.GoToAsync(url); var optScreen = new ScreenshotOptions() { FullPage = true }; var hasil = output.LastIndexOf(".") + 1; var jawaban = output.Substring(hasil, 3); if (jawaban == "jpg") { string[] files = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.jpg"); foreach (string file in files) { if (File.Exists(file)) { await page.ScreenshotAsync($"{output}", optScreen); } } await page.ScreenshotAsync($"{output}", optScreen); await page.CloseAsync(); } if (jawaban == "png") { string[] files = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.jpg"); foreach (string file in files) { if (File.Exists(file)) { await page.ScreenshotAsync($"{output}", optScreen); } } await page.ScreenshotAsync($"{output}", optScreen); await page.CloseAsync(); } if (jawaban == "pdf") { string[] files = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.jpg"); foreach (string file in files) { if (File.Exists(file)) { await page.PdfAsync($"{output}"); } } await page.PdfAsync($"{output}"); await page.CloseAsync(); } }
public static async Task screenshot(string url, string format) { await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision); var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true }); var page = await browser.NewPageAsync(); await page.GoToAsync(url); var optScreen = new ScreenshotOptions() { FullPage = true }; if (format == "jpg" || format == "png") { if (format == "jpg") { string[] files = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.jpg"); foreach (string file in files) { if (file.Contains("screenshot")) { var hasil = Path.GetFileNameWithoutExtension(file); var coba = hasil.Replace("screenshot-", ""); var tambah = int.Parse(coba) + 1; await page.ScreenshotAsync($"screenshot-0{tambah}.{format}", optScreen); } } await page.ScreenshotAsync($"screenshot-0{1}.{format}", optScreen); await page.CloseAsync(); } else if (format == "png") { string[] files = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.png"); foreach (string file in files) { if (file.Contains("screenshot")) { var hasil = Path.GetFileNameWithoutExtension(file); var coba = hasil.Replace("screenshot-", ""); var tambah = int.Parse(coba) + 1; await page.ScreenshotAsync($"screenshot-0{tambah}.{format}", optScreen); } } await page.ScreenshotAsync($"screenshot-0{1}.{format}", optScreen); await page.CloseAsync(); } } else if (format == "pdf") { string[] files = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.pdf"); foreach (string file in files) { if (file.Contains("screenshot")) { string hasil = Path.GetFileNameWithoutExtension(file); string coba = hasil.Replace("screenshot-", ""); var tambah = int.Parse(coba) + 1; await page.PdfAsync($"screenshot-0{tambah}.{format}"); } } await page.PdfAsync($"screenshot-0{1}.{format}"); await page.CloseAsync(); } }
static async Task Main(string[] args) { await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision); var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = false }); var page = await browser.NewPageAsync(); await page.GoToAsync("https://mobile.craigslist.org/", new NavigationOptions { WaitUntil = new [] { WaitUntilNavigation.Networkidle0 } }); var searchTextbox = await page.QuerySelectorAsync("#query"); await searchTextbox.TypeAsync("nintendo switch"); await searchTextbox.PressAsync(Key.Enter); await page.WaitForNavigationAsync(new NavigationOptions { WaitUntil = new[] { WaitUntilNavigation.Networkidle0 } }); var searchResults = await page.EvaluateExpressionAsync <List <SearchResult> >(@" (function () { let resultNodes = document.querySelectorAll('.rows > *'); let searchResults = []; for (let i = 0; i < resultNodes.length; i++) { let node = resultNodes[i]; let shouldStop = node.classList.contains('nearby'); if (shouldStop) { break; } let title = node.querySelector('.result-title').innerText; let isValid = title.toLowerCase().indexOf('nintendo switch') >= 0; if (!isValid) { continue; } let date = node.querySelector('.result-date').getAttribute('title'); let amount = node.querySelector('.result-price').innerText; let locationNode = node.querySelector('.result-hood'); let location = locationNode !== null ? locationNode.innerText : null; let imgNode = node.querySelector('.result-image img'); let imageSrc = imgNode !== null ? imgNode.getAttribute('src') : null; let resultUrl = node.querySelector('.result-title').getAttribute('href'); let searchResult = { title: title, date: date, amount: amount, location: location, imageSrc: imageSrc, resultUrl: resultUrl, newFieldHere: 'Sabotage!' }; searchResults.push(searchResult); } return searchResults; })(); "); var serializedResults = JsonConvert.SerializeObject(searchResults, Formatting.Indented); Console.WriteLine(serializedResults); Console.WriteLine($"Total results: {searchResults.Count}"); var originalWidth = page.Viewport.Width; await SetViewportWidth(page, 1920); var screenshotOptions = new ScreenshotOptions { FullPage = true }; await page.ScreenshotAsync("hello-puppeteer-gang.jpeg", screenshotOptions); await SetViewportWidth(page, originalWidth); browser.Dispose(); }
public static async Task ScreenShot(string url, string format) { await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision); var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = false }); var page = await browser.NewPageAsync(); await page.GoToAsync(url); var optionScreen = new ScreenshotOptions() { FullPage = true }; if (format == "pdf") { string path = "D:/TRAININGC#/JANUARI/23Januari APP CMD/Task/program8"; string[] getFile = Directory.GetFiles(path); foreach (string item in getFile) { int counter = 1; string file_name = Path.GetFileNameWithoutExtension(item); string final = file_name.Replace("screenshot-", ""); if (final == Convert.ToString(counter)) { counter++; await page.ScreenshotAsync("screenshot-" + counter + ".pdf"); } else { await page.ScreenshotAsync("screenshot-" + counter + ".pdf"); } } } else if (format == "jpg") { string loc = "D:/TRAININGC#/JANUARI/23Januari APP CMD/Task/program8"; string[] getFile = Directory.GetFiles(loc); foreach (string item in getFile) { int count = 1; string file_name = Path.GetFileNameWithoutExtension(item); string final = file_name.Replace("screenshot-", ""); if (final == Convert.ToString(count)) { count++; await page.ScreenshotAsync("screenshot-" + count + ".jpg"); } else { await page.ScreenshotAsync("screenshot-" + count + ".jpg"); } } } else { string path = "D:/TRAININGC#/JANUARI/23Januari APP CMD/Task/program8"; string[] getFile = Directory.GetFiles(path); foreach (string item in getFile) { int count = 1; string file_name = Path.GetFileNameWithoutExtension(item); string final = file_name.Replace("screenshot-", ""); if (final == Convert.ToString(count)) { count++; await page.ScreenshotAsync("screenshot-" + count + ".png"); } else { await page.ScreenshotAsync("screenshot-" + count + ".png"); } } } }
public async Task <Stream> Post([FromBody] RequestedData data) { try { var browser = await Puppeteer.LaunchAsync(new LaunchOptions { IgnoreHTTPSErrors = true, Headless = true, Args = new string[] { "--no-sandbox" } }).ConfigureAwait(false); using (var page = await browser.NewPageAsync().ConfigureAwait(false)) { await page.SetViewportAsync(new ViewPortOptions { Width = 1600, DeviceScaleFactor = 1 }); var hasHeader = data.Headers?.Any() ?? false; var hasCookie = data.Cookies?.Any() ?? false; if (hasHeader) { await page.SetExtraHttpHeadersAsync(data.Headers); } if (hasCookie) { var cookieArray = data.Cookies.Trim().Trim(';').Split(';'); var cookieCount = cookieArray.Length; CookieParam[] cookiePrams = new CookieParam[cookieCount]; for (int i = 0; i < cookieCount; i++) { var cookieValues = cookieArray[i].Split('='); cookiePrams[i] = new CookieParam { Url = data.Url, Name = cookieValues[0].Trim(), Value = cookieValues[1].Trim() }; } await page.SetCookieAsync(cookiePrams).ConfigureAwait(false); } Stream resultStream = new MemoryStream(); await page.GoToAsync(data.Url, WaitUntilNavigation.Networkidle0); if (data.Format.Equals("pdf")) { resultStream = await page.PdfStreamAsync(new PdfOptions() { PrintBackground = true, Scale = 1 }); await page.CloseAsync().ConfigureAwait(false); } else if (data.Format.Equals("png")) { ScreenshotOptions screenshotOptions = new ScreenshotOptions() { FullPage = true }; resultStream = await page.ScreenshotStreamAsync(screenshotOptions); await page.CloseAsync().ConfigureAwait(false); } await page.CloseAsync().ConfigureAwait(false); await browser.CloseAsync().ConfigureAwait(false); return(resultStream); } } catch (Exception exMsg) { using (Stream stream = new MemoryStream()) { exMsg.Message.ToString(); return(stream); } } }
public static async Task SS(string url, string format) { //UTAMA await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision); var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = false }); var page = await browser.NewPageAsync(); await page.GoToAsync(url); var optionScreen = new ScreenshotOptions() { FullPage = true }; if (format == "pdf") { string path = "D:/Users/bsi50130/Desktop/app7"; string[] getFile = Directory.GetFiles(path); foreach (string x in getFile) { int counter = 1; string data = Path.GetFileNameWithoutExtension(x); string data1 = data.Replace("screenshot--", ""); if (data1 == Convert.ToString(counter)) { counter++; await page.ScreenshotAsync("screenshot--" + counter + ".pdf"); } else { await page.ScreenshotAsync("screenshot--" + counter + ".pdf"); } } } else if (format == "jpg") { string path = "D:/Users/bsi50130/Desktop/app7"; string[] getFile = Directory.GetFiles(path); foreach (string x in getFile) { int counter = 1; string data = Path.GetFileNameWithoutExtension(x); string data1 = data.Replace("screenshot--", ""); if (data1 == Convert.ToString(counter)) { counter++; await page.ScreenshotAsync("screenshot--" + counter + ".jpg"); } else { await page.ScreenshotAsync("screenshot--" + counter + ".jpg"); } } } else { string path = "D:/Users/bsi50130/Desktop/app7"; string[] getFile = Directory.GetFiles(path); foreach (string x in getFile) { int counter = 1; string data = Path.GetFileNameWithoutExtension(x); string data1 = data.Replace("screenshot--", ""); if (data1 == Convert.ToString(counter)) { counter++; await page.ScreenshotAsync("screenshot--" + counter + ".png"); } else { await page.ScreenshotAsync("screenshot--" + counter + ".png"); } } } }
public async Task <byte[]> ScreenshotPNG(string url, IEnumerable <CookieParam> cookies, ViewPortOptions viewport, ScreenshotOptions options, RevisionInfo revision) { LaunchOptions launchOptions = new LaunchOptions() { ExecutablePath = revision.ExecutablePath, Args = BrowserArgs, Headless = true, DefaultViewport = viewport, Timeout = 0 }; browser = await Puppeteer.LaunchAsync(launchOptions); try { var page = await browser.NewPageAsync(); try { NavigationOptions navigationOptions = new NavigationOptions() { Timeout = 0 }; string originalUserAgent = await browser.GetUserAgentAsync(); await page.SetUserAgentAsync($"{originalUserAgent} {USER_AGENT_SUFFIX}"); if (cookies.Any()) { await page.SetCookieAsync(cookies.ToArray()); } await page.GoToAsync(url, navigationOptions); return(await page.ScreenshotDataAsync(options)); } finally { await Cleanup(page); } } finally { Cleanup(browser); } }