Documentation
¶
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
var DefaultPdfOption = PdfOption{ BrowserOpts: BrowserConf{ IdleType: defaultIdleType, }, RendererOpts: RendererConf{ Headless: true, WindowWidth: defaultWindowWidth, WindowHeight: defaultWindowHeight, Timeout: defaultTimeout, ImageLoad: true, }, }
Chrome DevTools Protocol reference for default values: https://chromedevtools.github.io/devtools-protocol/tot/Page/#method-printToPDF
var DefaultRendererConf = RendererConf{ Headless: true, WindowWidth: defaultWindowWidth, WindowHeight: defaultWindowHeight, Timeout: defaultTimeout, }
var DefaultRendererOption = RendererOption{ BrowserOpts: BrowserConf{ IdleType: defaultIdleType, }, Opts: DefaultRendererConf, }
Functions ¶
func IsValidIdleType ¶ added in v0.11.0
IsValidIdleType checks if the given idleType is valid
Types ¶
type BrowserConf ¶ added in v0.10.0
type PdfOption ¶ added in v0.10.0
type PdfOption struct { BrowserOpts BrowserConf RendererOpts RendererConf Landscape bool PaperWidthCm float64 PaperHeightCm float64 MarginTopCm float64 MarginBottomCm float64 MarginLeftCm float64 MarginRightCm float64 }
type Renderer ¶ added in v0.10.0
type Renderer struct {
// contains filtered or unexported fields
}
func NewRenderer ¶ added in v0.10.0
func NewRenderer(options ...WithOption) *Renderer
NewRenderer create new renderer instance. Function options can be pass as argument to set for configuration (logger for now)
func (*Renderer) Listen ¶ added in v0.12.0
func (r *Renderer) Listen(ctx context.Context, conf BrowserConf)
func (*Renderer) RenderPage ¶ added in v0.10.0
func (r *Renderer) RenderPage(urlStr string, opts *RendererOption) ([]byte, error)
RenderPage render the given url with automated chrome browser and return back the result html content. RendererOption is use for setting the behavior of the automated browser while rendering the page.
Example ¶
package main import ( "log/slog" "os" "github.com/liuminhaw/renderer" ) func main() { logger := slog.New(slog.NewTextHandler(os.Stdout, nil)) r := renderer.NewRenderer(renderer.WithLogger(logger)) content, err := r.RenderPage("https://www.example.com", nil) if err != nil { logger.Error(err.Error()) os.Exit(1) } f, err := os.Create("result.html") if err != nil { logger.Error(err.Error()) os.Exit(1) } defer f.Close() f.Write(content) }
func (*Renderer) RenderPdf ¶ added in v0.10.0
RenderPdf generate and return the pdf as byte array from the given url using automated chrome browser. PdfOption is for setting the style of the generated pdf.
Example ¶
package main import ( "log/slog" "os" "github.com/liuminhaw/renderer" ) func main() { logger := slog.New(slog.NewTextHandler(os.Stdout, nil)) r := renderer.NewRenderer(renderer.WithLogger(logger)) content, err := r.RenderPdf("https://www.example.com", nil) if err != nil { logger.Error(err.Error()) os.Exit(1) } f, err := os.Create("result.pdf") if err != nil { logger.Error(err.Error()) os.Exit(1) } defer f.Close() f.Write(content) }
type RendererConf ¶ added in v0.12.0
type RendererOption ¶ added in v0.10.0
type RendererOption struct { BrowserOpts BrowserConf Opts RendererConf }
type WithOption ¶ added in v0.10.0
type WithOption func(*Renderer)
Function options
func WithIdleCheck ¶ added in v0.12.0
func WithIdleCheck(idleWait time.Duration, maxInflight int) WithOption
WithIdleCheck can be provided to NewRenderer function to determine how to check if the network is idle before returning the result. network is considered idle when there are less than or equal to maxInflight requests in action in the last `idleWait` time duration window.
func WithLogger ¶ added in v0.10.0
func WithLogger(logger *slog.Logger) WithOption
WithLogger can be provided to NewRenderer function to set logger for the Renderer