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.*;
import lombok.extern.slf4j.Slf4j;

import java.io.IOException;
import java.util.ArrayList;

@Slf4j
public class PagePdfGenUtils {

    public static void genPdf(String url) throws Throwable {
        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("/usr/src/myapp/test.pdf");
        byte[] pdfBytes = page.pdf(pdfOptions);

        ScreenshotOptions screenshotOptions = new ScreenshotOptions();
        //设置截图范围
        Clip clip = new Clip(1.0,1.56,400,400);
        screenshotOptions.setClip(clip);
        //设置存放的路径
        screenshotOptions.setPath("/usr/src/myapp/test.png");
        page.screenshot(screenshotOptions);


        page.close();
        browser.close();
    }
}