12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package main
- import (
- "context"
- "fmt"
- "log"
- "os"
- "github.com/chromedp/cdproto/page"
- "github.com/chromedp/chromedp"
- )
- func main() {
- // create context
- ctx, cancel := chromedp.NewContext(context.Background())
- defer cancel()
- // capture pdf
- var buf []byte
- if err := chromedp.Run(ctx, printToPDF(`https://nightlies.apache.org/flink/flink-docs-master/zh/docs/dev/datastream/overview/`, &buf)); err != nil {
- log.Fatal(err)
- }
- if err := os.WriteFile("test.pdf", buf, 0o644); err != nil {
- log.Fatal(err)
- }
- fmt.Println("wrote test.pdf")
- }
- // print a specific pdf page.
- func printToPDF(urlstr string, res *[]byte) chromedp.Tasks {
- return chromedp.Tasks{
- chromedp.Navigate(urlstr),
- chromedp.ActionFunc(func(ctx context.Context) error {
- buf, _, err := page.PrintToPDF().WithPrintBackground(false).Do(ctx)
- if err != nil {
- return err
- }
- *res = buf
- return nil
- }),
- }
- }
|