60 lines
1.4 KiB
Go
60 lines
1.4 KiB
Go
|
|
package main
|
|||
|
|
|
|||
|
|
import (
|
|||
|
|
"context"
|
|||
|
|
"encoding/json"
|
|||
|
|
"flag"
|
|||
|
|
"fmt"
|
|||
|
|
"os"
|
|||
|
|
"path/filepath"
|
|||
|
|
|
|||
|
|
"go.uber.org/zap"
|
|||
|
|
|
|||
|
|
"hyapi-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)
|
|||
|
|
}
|