将网络视图渲染为图像

时间:2020-10-08 15:18:33

标签: html go webview snapshot

我正在将github.com/webview/webview用于我的Go应用程序。 我想对HTML页面的特定部分进行快照。

问题是我无法设置WebView的窗口位置,也无法使用JavaScript window.screenX / window.screenY获取同一窗口的位置,因为它总是返回零。

这是我的Go代码:

package main

import (
    "automation/internal/box"
    "github.com/webview/webview"
    "html/template"
    "log"
    "net/http"
    "time"
)

type PageVariables struct {
    Date         string
    Time         string
}

func main(){
    // Define embed file (for a short)
    index := string(box.Get("/homepage.html"))
    tmpl := template.Must(template.New("").Parse(index))

    /*
    // ********* Screen Capture Example, window coordinates are required here! *********
    img, err := screenshot.Capture(0, 0, 1440, 900) // *image.RGBA
    if err != nil {
        panic(err)
    } */


    go func() {
        // Handle function
        http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
            now := time.Now() // find the time right now
            HomePageVars := PageVariables{ //store the date and time in a struct
                Date: now.Format("02-01-2006"),
                Time: now.Format("15:04:05"),
            }

            // Execute template with data
            if err := tmpl.Execute(w, HomePageVars); err != nil {
                log.Fatal(err)
            }
        })

        // Start server
        if err := http.ListenAndServe(":8080", nil); err != nil {
            log.Fatal(err)
        }
    }()

    debug := true
    w := webview.New(debug)
    defer w.Destroy()
    w.SetTitle("Minimal webview example")
    w.SetSize(800, 600, webview.HintNone).  // Can only set the size, not the position
    w.Navigate("http://localhost:8080/")
    w.Run()

}
  • 是否可以获取窗口位置?

  • 除了可以获取/设置窗口位置的WebView之外,还有更好的跨平台替代方案吗?

  • 是否可以获取特定窗口的快照,然后将其裁剪到所需的部分?

0 个答案:

没有答案