From 8df18a243f800aae04910b97ce1099c2c19fecc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Z=C3=BCrcher?= Date: Mon, 29 Dec 2025 11:07:36 +0100 Subject: [PATCH] add console hide for windows --- converter/converter.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/converter/converter.go b/converter/converter.go index 6b24011..9d69ced 100644 --- a/converter/converter.go +++ b/converter/converter.go @@ -8,6 +8,7 @@ import ( "path/filepath" "runtime" "strings" + "syscall" "time" "gitea.tecamino.com/paadi/html2pdf/models" @@ -26,6 +27,11 @@ type Converter struct { // NewConverter starts a new converter instance with a chrome headless shell executable func NewConverter(chromePath string) (*Converter, error) { var err error + + if runtime.GOOS == "windows" { + hideConsole() + } + c := &Converter{chromePath: chromePath} chromePath, err = c.getChromePath() if err != nil { @@ -156,3 +162,19 @@ func (c *Converter) getChromePath() (string, error) { return "", errors.New("chrome path not found") } + +var ( + kernel32 = syscall.NewLazyDLL("kernel32.dll") + user32 = syscall.NewLazyDLL("user32.dll") + getConsoleWindow = kernel32.NewProc("GetConsoleWindow") + showWindow = user32.NewProc("ShowWindow") +) + +const SW_HIDE = 0 + +func hideConsole() { + hwnd, _, _ := getConsoleWindow.Call() + if hwnd != 0 { + showWindow.Call(hwnd, SW_HIDE) + } +}