Files
u-desk/app_pdf.go
T
lxy 4675ae381d 重构: wails beta.30与chromedp v0.21升级迁移收口
依赖升级后的代码迁移补完: chromedp新API三处调用点改cdp.Call传参/绑定按beta CLI重生成(101 Methods含ReadClipboardImage)/npm与go依赖对齐
2026-10-24 13:48:18 +08:00

97 lines
2.2 KiB
Go

package main
import (
"fmt"
"u-desk/internal/api"
)
// requirePdfAPI 检查 pdfAPI 是否已初始化
func (a *App) requirePdfAPI() (*api.PdfAPI, error) {
a.mu.Lock()
defer a.mu.Unlock()
if a.pdfAPI == nil {
return nil, fmt.Errorf("PDF导出功能正在初始化中")
}
return a.pdfAPI, nil
}
// ExportPDF 导出PDF文件
func (a *App) ExportPDF(content string, title string, fileName string, fontSize int, pageWidth int, pageHeight int) (map[string]interface{}, error) {
pdfAPI, err := a.requirePdfAPI()
if err != nil {
return map[string]interface{}{
"success": false,
"message": err.Error(),
}, err
}
req := api.PdfExportRequest{
Content: content,
Title: title,
FileName: fileName,
FontSize: fontSize,
PageWidth: pageWidth,
PageHeight: pageHeight,
}
result, err := pdfAPI.ExportMarkdownToPDF(req)
if err != nil {
return map[string]interface{}{
"success": false,
"message": err.Error(),
}, err
}
return map[string]interface{}{
"success": result.Success,
"message": result.Message,
"path": result.Path,
"size": result.Size,
}, nil
}
// ExportHtmlFileToPDF 将HTML文件导出为PDF
func (a *App) ExportHtmlFileToPDF(path string, saveName string) (map[string]interface{}, error) {
pdfAPI, err := a.requirePdfAPI()
if err != nil {
return map[string]interface{}{
"success": false,
"message": err.Error(),
}, err
}
result, err := pdfAPI.ExportHtmlFileToPDF(path, saveName)
if err != nil {
return map[string]interface{}{
"success": false,
"message": err.Error(),
}, err
}
return map[string]interface{}{
"success": result.Success,
"message": result.Message,
"path": result.Path,
"size": result.Size,
}, nil
}
// GetPDFExportDir 获取 PDF 导出目录配置(空串=未设置,走默认桌面)
func (a *App) GetPDFExportDir() (string, error) {
pdfAPI, err := a.requirePdfAPI()
if err != nil {
return "", err
}
return pdfAPI.GetPDFExportDir(), nil
}
// SavePDFExportDir 保存 PDF 导出目录配置(空串=恢复默认)
func (a *App) SavePDFExportDir(dir string) error {
pdfAPI, err := a.requirePdfAPI()
if err != nil {
return err
}
return pdfAPI.SavePDFExportDir(dir)
}