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);
        }
    }
}