go实现在线阅读
- ubuntu下载libreoffice,并添加到环境变量
sudo apt-get update sudo apt-get upgrade sudo apt-get install libreoffice-common - 转doc、docx、xlsx、ppt、pptx为pdf/html时提示没有java环境(安装java环境)
apt install openjdk-8-jre-headless - 提示无法加载load源文件(需安装writer,calc, impress等)
sudo apt-get install libreoffice-writer sudo apt-get install libreoffice-calc sudo apt-get install libreoffice-impress - 中文无法识别需网/usr/share/fonts/ 添加字体包至少包含微软雅黑
- html文件直接返回
- pdf 文件
-
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