package com.tanpu.community.util; import com.ruiyun.jvppeteer.core.Puppeteer; import com.ruiyun.jvppeteer.core.browser.Browser; import com.ruiyun.jvppeteer.core.browser.BrowserFetcher; import com.ruiyun.jvppeteer.core.page.Page; import com.ruiyun.jvppeteer.options.LaunchOptions; import com.ruiyun.jvppeteer.options.LaunchOptionsBuilder; import com.ruiyun.jvppeteer.options.PDFOptions; import lombok.extern.slf4j.Slf4j; import java.util.ArrayList; @Slf4j public class PagePdfGenUtils { public static void genPdf(String url) { try { BrowserFetcher.downloadIfNotExist(null); ArrayList<String> argList = new ArrayList<>(); LaunchOptions options = new LaunchOptionsBuilder() .withExecutablePath("/usr/bin/google-chrome") .withArgs(argList) .withHeadless(true) .build(); argList.add("--no-sandbox"); argList.add("--disable-setuid-sandbox"); Browser browser = Puppeteer.launch(options); Page page = browser.newPage(); page.goTo(url); PDFOptions pdfOptions = new PDFOptions(); pdfOptions.setPath("/biz/tmp/test.pdf"); byte[] pdfBytes = page.pdf(pdfOptions); page.close(); browser.close(); } catch (Exception e) { log.error("error in genPdf for {}, error: {}", url, e); } } }