package main import ( "context" "encoding/json" "flag" "fmt" "os" "path/filepath" "go.uber.org/zap" "tyapi-server/internal/shared/pdf" ) // 一个本地调试用的小工具: // 从 JSON 文件(企业报告.json)读取 QYGL 聚合结果,使用 gofpdf 生成企业全景报告 PDF,输出到当前目录。 func main() { var ( jsonPath string outPath string ) flag.StringVar(&jsonPath, "json", "企业报告.json", "企业报告 JSON 数据源文件路径") flag.StringVar(&outPath, "out", "企业全景报告_gofpdf.pdf", "输出 PDF 文件路径") flag.Parse() logger, _ := zap.NewDevelopment() defer logger.Sync() absJSON, _ := filepath.Abs(jsonPath) fmt.Printf("读取 JSON 数据源:%s\n", absJSON) data, err := os.ReadFile(jsonPath) if err != nil { fmt.Printf("读取 JSON 文件失败: %v\n", err) os.Exit(1) } var report map[string]interface{} if err := json.Unmarshal(data, &report); err != nil { fmt.Printf("解析 JSON 失败: %v\n", err) os.Exit(1) } fmt.Println("开始使用 gofpdf 生成企业全景报告 PDF...") pdfBytes, err := pdf.GenerateQYGLReportPDF(context.Background(), logger, report) if err != nil { fmt.Printf("生成 PDF 失败: %v\n", err) os.Exit(1) } if err := os.WriteFile(outPath, pdfBytes, 0644); err != nil { fmt.Printf("写入 PDF 文件失败: %v\n", err) os.Exit(1) } absOut, _ := filepath.Abs(outPath) fmt.Printf("PDF 生成完成:%s\n", absOut) }