go实现在线阅读


  1. ubuntu下载libreoffice,并添加到环境变量
    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get install libreoffice-common
  2. 转doc、docx、xlsx、ppt、pptx为pdf/html时提示没有java环境(安装java环境)
     apt install openjdk-8-jre-headless
     
  3. 提示无法加载load源文件(需安装writer,calc, impress等)
    sudo apt-get install libreoffice-writer
    sudo apt-get install libreoffice-calc
    sudo apt-get install libreoffice-impress
  4. 中文无法识别需网/usr/share/fonts/ 添加字体包至少包含微软雅黑
  5. html文件直接返回
  6. pdf 文件     
  7. func main() {
    	r := gin.Default()
    
    	r.GET("/pdf", func(c *gin.Context) {
    		dataByte, _ := ioutil.ReadFile("./view-pdf/pdf/pdf.html")
    		dataStr := string(dataByte)
    		pdfUrl := "/view/img?url=testpdf.pdf"
    		dataStr = strings.Replace(dataStr, "{{url}}", pdfUrl, -1)
    		dataByte = []byte(dataStr)
    
    		c.Header("content-length", strconv.Itoa(len(dataByte)))
    		c.Header("content-type:", "text/html;charset=UTF-8")
    		c.Writer.Write([]byte(dataByte))
    		// c.Response.Writer.Write([]byte(dataByte))
    	})
    
    	r.GET("/view/img", func(c *gin.Context) {
    		url := "./" + c.Query("url")
    		DataByte, err := ioutil.ReadFile(url)
    		if err != nil {
    			c.Header("content-length", strconv.Itoa(len("404")))
    			c.Header("content-type:", "text/html;charset=UTF-8")
    			c.Writer.Write([]byte("出现了一些问题,无法获取您的数据!"))
    			return
    		}
    		c.Header("content-length", strconv.Itoa(len(DataByte)))
    		c.Writer.Write(DataByte)
    	})
    
    	r.Run(":8080")
    }

pdf.html




    GoViewFile
    



    

相关