From 444a84c629e192a60f34a94789e93c5afe1c9b9d Mon Sep 17 00:00:00 2001 From: xiaoqidun Date: Thu, 24 Sep 2026 17:42:14 +0800 Subject: [PATCH] =?UTF-8?q?docs(=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3):=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=BD=AC=E6=8D=A2=E6=96=87=E6=A1=A3=E4=BE=8B?= =?UTF-8?q?=E5=AD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 197 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 119 insertions(+), 78 deletions(-) diff --git a/README.md b/README.md index b3e406c..4373fe2 100644 --- a/README.md +++ b/README.md @@ -26,84 +26,6 @@ go build -o ofdgo_webui.exe -trimpath -ldflags "-s -w -buildid=" ./cmd/webui/web go get -u github.com/xiaoqidun/ofdgo ``` -# 渲染输出 -```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) - } -} -``` - -# 签名验证 -```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) - } -} -``` - # 创建文档 ```go package main @@ -184,5 +106,124 @@ func main() { } ``` +# 转换文档 +```go +package main + +import ( + "context" + "log" + "os" + + "github.com/xiaoqidun/ofdgo" +) + +func main() { + // 1. 打开文档 + pdfFile, err := os.Open("test.pdf") + if err != nil { + log.Fatal(err) + } + defer pdfFile.Close() + info, err := pdfFile.Stat() + if err != nil { + log.Fatal(err) + } + // 2. 创建文件 + ofdFile, err := os.Create("test.ofd") + if err != nil { + log.Fatal(err) + } + defer ofdFile.Close() + // 3. 转换文档 + report, err := ofdgo.ConvertPDF(context.Background(), pdfFile, info.Size(), ofdFile, ofdgo.PDFImportOptions{}) + if err != nil { + log.Fatal(err) + } + // 4. 查看警告 + for _, warning := range report.Warnings { + log.Printf("第%d页: %s", warning.Page, warning.Message) + } +} +``` + +# 渲染文档 +```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) + } +} +``` + +# 验证签名 +```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) + } +} +``` + # 授权协议 本项目使用 [Apache License 2.0](https://github.com/xiaoqidun/ofdgo/blob/main/LICENSE) 授权协议