### Install OFDGo Library Source: https://github.com/xiaoqidun/ofdgo/blob/main/README.md Add the OFDGo package to your Go project. ```shell go get -u github.com/xiaoqidun/ofdgo ``` -------------------------------- ### Build OFDGo WASM and WebUI Source: https://github.com/xiaoqidun/ofdgo/blob/main/README.md Compile the project for WASM and Windows environments using batch commands. ```batch :: 1. 编译OFDGo WASM set GOOS=js set GOARCH=wasm go build -o assets/webui/ofdgo.wasm -trimpath -ldflags "-s -w -buildid=" ./cmd/webui/wasm.go :: 2. 编译OFDGo WebUI set GOOS=windows set GOARCH=amd64 go build -o ofdgo_webui.exe -trimpath -ldflags "-s -w -buildid=" ./cmd/webui/webui.go ``` -------------------------------- ### Deploy OFDGo via Docker Source: https://github.com/xiaoqidun/ofdgo/blob/main/README.md Run the OFDGo service using a pre-built Docker image. ```shell docker run -d -p 80:80 ccr.ccs.tencentyun.com/xiaoqidun/ofdgo:latest ``` -------------------------------- ### Render OFD to PDF Source: https://github.com/xiaoqidun/ofdgo/blob/main/README.md Convert an OFD file to a multi-page PDF document using the library. ```go package main import ( "log" "os" "github.com/xiaoqidun/ofdgo" ) func main() { // 1. 打开OFD文件 reader, err := ofdgo.Open("test.ofd") if err != nil { log.Fatal(err) } defer reader.Close() // 2. 创建PDF文件 pdfFile, err := os.Create("test.pdf") if err != nil { log.Fatal(err) } defer pdfFile.Close() // 3. 渲染PDF文件 renderer := ofdgo.NewRenderer(reader) if err := renderer.RenderToMultiPagePDF(pdfFile); err != nil { log.Fatal(err) } } ``` -------------------------------- ### Verify OFD Signatures Source: https://github.com/xiaoqidun/ofdgo/blob/main/README.md Validate digital signatures within an OFD file by reading the file bytes. ```go package main import ( "log" "os" "github.com/xiaoqidun/ofdgo" ) func main() { // 1. 打开OFD文件 data, err := os.ReadFile("test.ofd") if err != nil { log.Fatal(err) } // 2. 验证OFD签名 reports, err := ofdgo.VerifySignaturesBytes(data) if err != nil { log.Fatal(err) } // 3. 判断验证结果 if len(reports) == 0 { log.Println("文件未发现签名") return } valid := true for _, report := range reports { if report.IntegrityValid() { log.Printf("签名%s验证通过", report.ID) continue } valid = false if report.Error == "" { log.Printf("签名%s验证失败", report.ID) } else { log.Printf("签名%s验证失败: %s", report.ID, report.Error) } } if !valid { os.Exit(1) } } ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.