mirror of
https://github.com/mindoc-org/mindoc.git
synced 2025-09-18 17:48:00 +08:00
解决导出文档失败的BUG
This commit is contained in:
@@ -17,6 +17,7 @@ import (
|
||||
"github.com/lifei6671/mindoc/utils/filetil"
|
||||
"github.com/lifei6671/mindoc/utils/ziptil"
|
||||
"github.com/lifei6671/mindoc/utils/cryptil"
|
||||
"sync"
|
||||
)
|
||||
|
||||
type Converter struct {
|
||||
@@ -131,32 +132,52 @@ func (this *Converter) Convert() (err error) {
|
||||
os.Mkdir(this.BasePath+"/"+output, os.ModePerm)
|
||||
if len(this.Config.Format) > 0 {
|
||||
var errs []string
|
||||
group := sync.WaitGroup{}
|
||||
|
||||
for _, v := range this.Config.Format {
|
||||
fmt.Println("convert to " + v)
|
||||
switch strings.ToLower(v) {
|
||||
case "epub":
|
||||
if err = this.convertToEpub(); err != nil {
|
||||
errs = append(errs, err.Error())
|
||||
fmt.Println("转换EPUB文档失败:" + err.Error())
|
||||
}
|
||||
case "mobi":
|
||||
if err = this.convertToMobi(); err != nil {
|
||||
errs = append(errs, err.Error())
|
||||
fmt.Println("转换MOBI文档失败:" + err.Error())
|
||||
}
|
||||
case "pdf":
|
||||
if err = this.convertToPdf(); err != nil {
|
||||
fmt.Println("转换PDF文档失败:" + err.Error())
|
||||
errs = append(errs, err.Error())
|
||||
group.Add(1)
|
||||
go func(group *sync.WaitGroup) {
|
||||
if err = this.convertToEpub(); err != nil {
|
||||
errs = append(errs, err.Error())
|
||||
fmt.Println("转换EPUB文档失败:" + err.Error())
|
||||
}
|
||||
group.Done()
|
||||
}(&group)
|
||||
|
||||
}
|
||||
case "mobi":
|
||||
group.Add(1)
|
||||
go func(group *sync.WaitGroup) {
|
||||
if err = this.convertToMobi(); err != nil {
|
||||
errs = append(errs, err.Error())
|
||||
fmt.Println("转换MOBI文档失败:" + err.Error())
|
||||
}
|
||||
group.Done()
|
||||
}(&group)
|
||||
case "pdf":
|
||||
group.Add(1)
|
||||
go func(group *sync.WaitGroup) {
|
||||
if err = this.convertToPdf(); err != nil {
|
||||
fmt.Println("转换PDF文档失败:" + err.Error())
|
||||
errs = append(errs, err.Error())
|
||||
}
|
||||
group.Done()
|
||||
}(&group)
|
||||
case "docx":
|
||||
if err = this.convertToDocx(); err != nil {
|
||||
fmt.Println("转换WORD文档失败:" + err.Error())
|
||||
errs = append(errs, err.Error())
|
||||
}
|
||||
group.Add(1)
|
||||
go func(group *sync.WaitGroup) {
|
||||
if err = this.convertToDocx(); err != nil {
|
||||
fmt.Println("转换WORD文档失败:" + err.Error())
|
||||
errs = append(errs, err.Error())
|
||||
}
|
||||
|
||||
group.Done()
|
||||
}(&group)
|
||||
}
|
||||
}
|
||||
group.Wait()
|
||||
if len(errs) > 0 {
|
||||
err = errors.New(strings.Join(errs, "\n"))
|
||||
}
|
||||
@@ -442,6 +463,7 @@ func (this *Converter) convertToEpub() (err error) {
|
||||
if this.Debug {
|
||||
fmt.Println(cmd.Args)
|
||||
}
|
||||
fmt.Println("正在转换EPUB文件", args[0])
|
||||
return cmd.Run()
|
||||
|
||||
//return filetil.CopyFile(filepath.Join(this.OutputPath, "content.epub"),filepath.Join(this.OutputPath, output, "book.epub"))
|
||||
@@ -457,7 +479,7 @@ func (this *Converter) convertToMobi() (err error) {
|
||||
if this.Debug {
|
||||
fmt.Println(cmd.Args)
|
||||
}
|
||||
|
||||
fmt.Println("正在转换 MOBI 文件", args[0])
|
||||
return cmd.Run()
|
||||
}
|
||||
|
||||
@@ -508,7 +530,7 @@ func (this *Converter) convertToPdf() (err error) {
|
||||
if this.Debug {
|
||||
fmt.Println(cmd.Args)
|
||||
}
|
||||
|
||||
fmt.Println("正在转换 PDF 文件", args[0])
|
||||
return cmd.Run()
|
||||
}
|
||||
|
||||
@@ -542,6 +564,7 @@ func (this *Converter) convertToDocx() (err error) {
|
||||
if this.Debug {
|
||||
fmt.Println(cmd.Args)
|
||||
}
|
||||
fmt.Println("正在转换 DOCX 文件", args[0])
|
||||
return cmd.Run()
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user