lorca: github.com/zserge/lorca Index | Files

package lorca

import "github.com/zserge/lorca"


Package Files

chrome.go export.go fs.go locate.go messagebox.go ui.go value.go


const (
    // PageA4Width is a width of an A4 page in pixels at 96dpi
    PageA4Width = 816
    // PageA4Height is a height of an A4 page in pixels at 96dpi
    PageA4Height = 1056


var ChromeExecutable = LocateChrome

ChromeExecutable returns a string which points to the preferred Chrome executable file.

func Embed Uses

func Embed(packageName, file string, dirs ...string) error

Embed is a helper function that embeds assets from the given directories into a Go source file. It is designed to be called from some generator script, see example project to find out how it can be used.

func LocateChrome Uses

func LocateChrome() string

LocateChrome returns a path to the Chrome binary, or an empty string if Chrome installation is not found.

func PDF Uses

func PDF(url, script string, width, height int) ([]byte, error)

PDF converts a given URL (may be a local file) to a PDF file. Script is evaluated before the page is printed to PDF, you may modify the contents of the page there of wait until the page is fully rendered. Width and height are page bounds in pixels. PDF by default uses 96dpi density. For A4 page you may use PageA4Width and PageA4Height constants.

func PNG Uses

func PNG(url, script string, x, y, width, height int, bg uint32, scale float32) ([]byte, error)

PNG converts a given URL (may be a local file) to a PNG image. Script is evaluated before the "screenshot" is taken, so you can modify the contents of a URL there. Image bounds are provides in pixels. Background is in ARGB format, the default value of zero keeps the background transparent. Scale allows zooming the page in and out.

This function is most convenient to convert SVG to PNG of different sizes, for example when preparing Lorca app icons.

func PromptDownload Uses

func PromptDownload()

PromptDownload asks user if he wants to download and install Chrome, and opens a download web page if the user agrees.

type Bounds Uses

type Bounds struct {
    Left        int         `json:"left"`
    Top         int         `json:"top"`
    Width       int         `json:"width"`
    Height      int         `json:"height"`
    WindowState WindowState `json:"windowState"`

Bounds defines settable window properties.

type UI Uses

type UI interface {
    Load(url string) error
    Bounds() (Bounds, error)
    SetBounds(Bounds) error
    Bind(name string, f interface{}) error
    Eval(js string) Value
    Done() <-chan struct{}
    Close() error

UI interface allows talking to the HTML5 UI from Go.

func New Uses

func New(url, dir string, width, height int, customArgs ...string) (UI, error)

New returns a new HTML5 UI for the given URL, user profile directory, window size and other options passed to the browser engine. If URL is an empty string - a blank page is displayed. If user profile directory is an empty string - a temporary directory is created and it will be removed on ui.Close(). You might want to use "--headless" custom CLI argument to test your UI code.

type Value Uses

type Value interface {
    Err() error
    To(interface{}) error
    Float() float32
    Int() int
    String() string
    Bool() bool
    Object() map[string]Value
    Array() []Value

Value is a generic type of a JSON value (primitive, object, array) and optionally an error value.

type WindowState Uses

type WindowState string

WindowState defines the state of the Chrome window, possible values are "normal", "maximized", "minimized" and "fullscreen".

const (
    // WindowStateNormal defines a normal state of the browser window
    WindowStateNormal WindowState = "normal"
    // WindowStateMaximized defines a maximized state of the browser window
    WindowStateMaximized WindowState = "maximized"
    // WindowStateMinimized defines a minimized state of the browser window
    WindowStateMinimized WindowState = "minimized"
    // WindowStateFullscreen defines a fullscreen state of the browser window
    WindowStateFullscreen WindowState = "fullscreen"

Package lorca imports 18 packages (graph) and is imported by 10 packages. Updated 2020-10-09. Refresh now. Tools for package owners.