


Just call the API and pass in the PDF URLs to join them into a single file and receive the generated result via webhook or via polling. You can use the API to join your PDFs that are generated using Puppeteer too if they are hosted on a server. npm ERR Tell the author that this fails on your system: npm ERR node install. npm ERR This is most likely a problem with the puppeteer package, npm ERR not with npm itself. Bannerbear has an API to join PDF files when you generate PDFs from templates using Bannerbear’s PDF generation API. Exit status 127 npm ERR npm ERR Failed at the puppeteer1.12.2 install script. If you have multiple PDFs and want to join them into a single PDF, here’s an easy method to do so. to generate PDFs, so feel free to play around with the code. You can also modify the code to pass in different arguments to the function, eg. If your needs to download a file are more simplistic, you can probably use the other methods mentioned on this thread, or the linked thread.Margin: ,ġ-Run node index.js or node index.js url to convert the HTML content of a web page using its URL into a PDF.Ģ-Run node index.js file to convert the content of an HTML file into a PDF. The details of DownloadFileRequiringHeadersAndCookies are here. Var cookieContainer = new CookieContainer() ĬookieContainer.Add(new Cookie(cookie.Name, cookie.Value, cookie.Path, cookie.Domain)) Populate the Cookie Container like this: private CookieContainer BuildCookieContainer(IEnumerable cookies) NEED THIS TIMEOUT TO KEEP THE BROWSER OPEN WHILE THE FILE IS DOWNLOADING!Īwait page.WaitForTimeoutAsync(1000 * configs.DownloadDurationEstimateInSeconds) Var cookieContainer = BuildCookieContainer(pageCookies) Īwait DownloadFileRequiringHeadersAndCookies(getUrl, fullPath, cookieContainer, cancellationToken) Īwait page.ClickAsync("button") Var pageCookies = await page.GetCookiesAsync() Add the cookies to a container for the upcoming Download GET request If (contentType.Contains("application/vnd.ms-excel")) Handle the response with the Excel download Page.Response += async (sender, responseCreatedEventArgs) => Handle multiple responses and process the Download await using (var browser = await Puppeteer.LaunchAsync(new LaunchOptions ))Īwait using (var page = await browser.NewPageAsync()) Once I had that particular response, I had to attach headers and cookies for the remote server to send the downloadable data in the response. In essence, before the button click, I had to process multiple responses and handle a single response with the download. I needed both Headers and Cookies set before the download would start. I had a more difficult variation of this, using Puppeteer Sharp.
