|
@@ -2,102 +2,21 @@ package api
|
|
|
|
|
|
import (
|
|
|
"fmt"
|
|
|
- "os"
|
|
|
- "os/exec"
|
|
|
- "path"
|
|
|
- "runtime"
|
|
|
- "strings"
|
|
|
- "testing"
|
|
|
+ "time"
|
|
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
)
|
|
|
|
|
|
func Printr(c *gin.Context, apictx *ApiSession) (interface{}, error) {
|
|
|
+ loc, _ := time.LoadLocation("Local")
|
|
|
+ date := time.Now().Format("2006-01-02")
|
|
|
+ startDate := date + " 00:00:00"
|
|
|
+ startTime, _ := time.ParseInLocation("2006-01-02 15:04:05", startDate, loc)
|
|
|
+ endDate := date + " 23:59:59"
|
|
|
+ endTime, _ := time.ParseInLocation("2006-01-02 15:04:05", endDate, loc)
|
|
|
+ fmt.Println(startTime.Unix())
|
|
|
+ fmt.Println(endTime.Unix())
|
|
|
|
|
|
- return nil, nil
|
|
|
+ return "success", nil
|
|
|
|
|
|
}
|
|
|
-
|
|
|
-func TestToPdf(t *testing.T) {
|
|
|
-
|
|
|
- fileSrcPath := "/Users/xing/Desktop/123/test2.docx" //自己机器上的文件地址
|
|
|
- outPath := "/Users/xing/Desktop/123/pdf" //转出文件的路径
|
|
|
- fileType := "pdf"
|
|
|
-
|
|
|
- osName := runtime.GOOS //获取系统类型
|
|
|
- switch osName {
|
|
|
- case "darwin": //mac系统
|
|
|
- command := "/Applications/LibreOffice.app/Contents/MacOS/soffice"
|
|
|
- pdfFile, err := FuncDocs2Pdf(command, fileSrcPath, outPath, fileType)
|
|
|
- if err != nil {
|
|
|
- println("转化异常:", err.Error())
|
|
|
- }
|
|
|
- fmt.Println("转化后的文件:", pdfFile)
|
|
|
- case "linux":
|
|
|
- command := "libreoffice7.3"
|
|
|
- pdfFile, err := FuncDocs2Pdf(command, fileSrcPath, outPath, fileType)
|
|
|
- if err != nil {
|
|
|
- println("转化异常:", err.Error())
|
|
|
- }
|
|
|
- fmt.Println("转化后的文件:", pdfFile)
|
|
|
- case "windows":
|
|
|
- command := "soffice libreoffice" // 因为没有windows机器需要自己测试下这个命令行
|
|
|
- pdfFile, err := FuncDocs2Pdf(command, fileSrcPath, outPath, fileType)
|
|
|
- if err != nil {
|
|
|
- println("转化异常:", err.Error())
|
|
|
- }
|
|
|
- fmt.Println("转化后的文件:", pdfFile)
|
|
|
- default:
|
|
|
- fmt.Println("暂时不支持的系统转化:" + runtime.GOOS)
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-/**
|
|
|
-*@tips libreoffice 转换指令:
|
|
|
-* libreoffice6.2 invisible --convert-to pdf csDoc.doc --outdir /home/[转出目录]
|
|
|
-*
|
|
|
-* @function 实现文档类型转换为pdf或html
|
|
|
-* @param command:libreofficed的命令(具体以版本为准);win:soffice; linux:libreoffice6.2
|
|
|
-* fileSrcPath:转换文件的路径
|
|
|
-* fileOutDir:转换后文件存储目录
|
|
|
-* converterType:转换的类型pdf/html
|
|
|
-* @return fileOutPath 转换成功生成的文件的路径 error 转换错误
|
|
|
- */
|
|
|
-func FuncDocs2Pdf(command string, fileSrcPath string, fileOutDir string, converterType string) (fileOutPath string, error error) {
|
|
|
- //校验fileSrcPath
|
|
|
- srcFile, erByOpenSrcFile := os.Open(fileSrcPath)
|
|
|
- if erByOpenSrcFile != nil && os.IsNotExist(erByOpenSrcFile) {
|
|
|
- return "", erByOpenSrcFile
|
|
|
- }
|
|
|
- //如文件输出目录fileOutDir不存在则自动创建
|
|
|
- outFileDir, erByOpenFileOutDir := os.Open(fileOutDir)
|
|
|
- if erByOpenFileOutDir != nil && os.IsNotExist(erByOpenFileOutDir) {
|
|
|
- erByCreateFileOutDir := os.MkdirAll(fileOutDir, os.ModePerm)
|
|
|
- if erByCreateFileOutDir != nil {
|
|
|
- fmt.Println("File ouput dir create error.....", erByCreateFileOutDir.Error())
|
|
|
- return "", erByCreateFileOutDir
|
|
|
- }
|
|
|
- }
|
|
|
- //关闭流
|
|
|
- defer func() {
|
|
|
- _ = srcFile.Close()
|
|
|
- _ = outFileDir.Close()
|
|
|
- }()
|
|
|
- //convert
|
|
|
- cmd := exec.Command(command, "--invisible", "--language=zh-CN", "--convert-to", converterType,
|
|
|
- fileSrcPath, "--outdir", fileOutDir)
|
|
|
- byteByStat, errByCmdStart := cmd.Output()
|
|
|
- //命令调用转换失败
|
|
|
- if errByCmdStart != nil {
|
|
|
- return "", errByCmdStart
|
|
|
- }
|
|
|
- //success
|
|
|
- fileOutPath = fileOutDir + "/" + strings.Split(path.Base(fileSrcPath), ".")[0]
|
|
|
- if converterType == "html" {
|
|
|
- fileOutPath += ".html"
|
|
|
- } else {
|
|
|
- fileOutPath += ".pdf"
|
|
|
- }
|
|
|
- fmt.Println("文件转换成功...", string(byteByStat))
|
|
|
- return fileOutPath, nil
|
|
|
-}
|