go libreoffice word 转pdf
一、main.go 关键代码

完整代码
package mainimport ("fmt""github.com/jmoiron/sqlx""github.com/tealeg/xlsx""log""os/exec""path/filepath"
)
import _ "github.com/go-sql-driver/mysql"import "net/http"
import "encoding/json"
import "io/ioutil"
import "github.com/google/uuid"type Student struct {Name stringSex string
}type ResponseData struct {Status string `json:"status"`Message string `json:"message"`
}func (student Student) show() {fmt.Printf("Name:%s Sex:%s\r\n", student.Name, student.Sex)
}
func uploadFile(w http.ResponseWriter, r *http.Request) {w.Header().Set("Content-Type", "application/json")r.ParseMultipartForm(32 << 20) // 设置最大内存为32MBfile, handler, err := r.FormFile("file")if err != nil {http.Error(w, err.Error(), http.StatusBadRequest)return}defer file.Close()data, err := ioutil.ReadAll(file)if err != nil {http.Error(w, err.Error(), http.StatusInternalServerError)return}ext := filepath.Ext(handler.Filename)// 这里可以将文件数据保存到服务器err2 := ioutil.WriteFile(uuid.NewString()+ext, data, 0644)if err2 != nil {return}response := ResponseData{Status: "success",Message: "Hello, this is a JSON response",}jsonResponse, err3 := json.Marshal(response)if err3 != nil {http.Error(w, err3.Error(), http.StatusInternalServerError)return}w.Write(jsonResponse)
}func convertToPDF(inputFile, outputFile string) {cmd := exec.Command("libreoffice", "--headless", "--convert-to", "pdf", inputFile, "--outdir", outputFile)err := cmd.Run()if err != nil {log.Fatal("转换失败:", err)}log.Println("转换成功!")
}func main() {inputFile := "/root/doc1.docx"outputFile := "/root/output/"convertToPDF(inputFile, outputFile)http.HandleFunc("/upload", uploadFile)http.ListenAndServe("0.0.0.0:5000", nil)
}
func saveexcel() {excelPath := "students.xlsx"xlFile, err := xlsx.OpenFile(excelPath)if err != nil {fmt.Printf("Error opening Excel file: %s\n", err)return}sheet := xlFile.Sheets[0]var students []Studenti := 0for _, row := range sheet.Rows {name := row.Cells[0].String()sex := row.Cells[1].String()fmt.Printf("name:%s sex:%s \r\n", name, sex)students = append(students, Student{Name: name, Sex: sex})i++}for _, student := range students {student.show()}fmt.Println("数据库操作")dsn := "root:123456@tcp(192.168.31.132:3306)/demo"db, err := sqlx.Open("mysql", dsn)if err != nil {log.Fatal(err)}for i, student := range students {if i == 0 {continue}db.NamedExec("insert into students(Name,Sex) values(:name,:sex)", student)}var studentMaps []*Studenterr = db.Select(&studentMaps, `select name,sex from students where name=?`, "张三")if err != nil {log.Fatal(err)}for _, student := range studentMaps {student.show()}
}
二、运行效果:

相关文章:
go libreoffice word 转pdf
一、main.go 关键代码 完整代码 package mainimport ("fmt""github.com/jmoiron/sqlx""github.com/tealeg/xlsx""log""os/exec""path/filepath" ) import _ "github.com/go-sql-driver/mysql"import &q…...
打造双模兼容npm包:无缝支持require与import
为了实现一个npm包同时支持require和import,你需要确保你的包同时提供了CommonJS和ES6模块的入口点。这通常是通过在package.json文件中指定main和module字段来实现的,以及在构建过程中生成两种不同模块格式的文件。 以下是具体步骤: 设置pa…...
便捷将屏幕投射到安卓/iOS设备-屏幕投射到安卓/iOS设备,Windows/Mac电脑或智能电视上-供大家学习研究参考
1. 下载并安装软件(安卓苹果都需要) 确保 Android 设备和 Windows/Mac电脑都安装。启动应用程序并将 Android 设备和 Windows / Mac 了解到同一个wifi下面。 2、 发起投屏请求 在接收设备上:...
yolox训练自己的数据集
环境搭建 gpu按自己情况安装 nvidia-smi 查看自己的版本 CUDA和cudnn 按自己的安装,我的驱动551.76,注意不要用最新的,官网只要求驱动是大于等于,可以用低版本的cuda,我安装的是CUDA 11.1 cuda下载后,…...
Centos8.5.2111(1)之本地yum源搭建和docker部署与网络配置
由于后边可能要启动多个服务,避免服务之间相互干扰,本课程建议每个服务独立部署到一台主机上,这样做会导致资源占用过多,可能会影响系统的运行。服务器部署一般不采用GUI图形界面部署,而是采用命令行方式部署ÿ…...
基于SSM+小程序的自习室选座与门禁管理系统(自习室1)(源码+sql脚本+视频导入教程+文档)
👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 1、管理员实现了首页、基础数据管理、论坛管理、公告信息管理、用户管理、座位管理等 2、用户实现了在论坛模块通过发帖与评论帖子的方式进行信息讨论,也能对账户进行在线充值…...
支付宝远程收款api之小荷包跳转码
想要生成小荷包跳转码的二维码,需要进行以下步骤: 1、开通支付宝小荷包的收款功能权限 2、获取支付宝的小荷包收款码和支付宝账户的UID已经手机号等相应信息(可能会有变动) 3、可能需要一定的代码基础,讲所需信息填…...
STM32 F1移植FATFS文件系统 USMART组件测试相关函数功能
STM32 F1移植FATFS文件系统 使用USMART调试组件测试相关函数功能 文章目录 STM32 F1移植FATFS文件系统 使用USMART调试组件测试相关函数功能前言部分主要相关代码# USMART介绍1. mf_scan_files 扫描磁盘文件2. mf_mount 挂载磁盘3. mf_open 打开文件4. mf_read 读数据内容5. mf…...
YOLOv8改进 | 融合篇,YOLOv8主干网络替换为MobileNetV3+CA注意机制+添加小目标检测层(全网独家首发,实现极限涨点)
原始 YOLOv8 训练结果: YOLOv8 + MobileNetV3改进后训练结果: YOLOv8 + MobileNetV3 + CA 注意机制 + 添加小目标检测层改进后训练结果(极限涨点): 摘要 小目标检测难点众多,导致很多算法对小目标的检测效果远不如大中型目标。影响算法性能的主要原因如下:第一,小目…...
深入探索机器学习中的目标分类算法
在当今数据驱动的世界中,机器学习(Machine Learning, ML)正逐渐成为解决问题的重要工具。在众多机器学习任务中,目标分类(Classification)算法尤其受到关注。本文将深入探讨目标分类算法的基本概念、常见类…...
一文上手SpringSecurity【七】
之前我们在测试的时候,都是使用的字符串充当用户名称和密码,本篇将其换成MySQL数据库. 一、替换为真实的MySQL 1.1 引入依赖 <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</v…...
深圳龙链科技:全球区块链开发先锋,领航Web3生态未来
【深圳龙链科技】是全球领先的Web3区块链技术开发公司,专注于为全球客户提供创新高效的区块链解决方案。 深圳龙链科技由币安资深股东携手香港领先的Web3创新枢纽Cyberport联袂打造,立足于香港这一国际金融中心,放眼全球,汇聚了华…...
手写代码,利用 mnist 数据集测试对比 kan 和 cnn/mlp 的效果
你好呀,我是董董灿。 kan 模型火了一段时间,很多人从理论的角度给出了非常专业的解读,基本结论是:从目前来看,kan 很难替代 mlp 成为一个更加经典的模型结构。 我这里就不从理论方面进行回答了,直接给出一…...
基于Java+SQL Server2008开发的(CS界面)个人财物管理系统
一、需求分析 个人财务管理系统是智能化简单化个人管理的重要的组成部分。并且随着计算机技术的飞速发展,计算机在管理方面应用的旁及,利用计算机来实现个人财务管理势在必行。本文首先介绍了个人财务管理系统的开发目的,其次对个人财务管理…...
15年408计算机网络
第一题: 解析: 接收方使用POP3向邮件服务器读取邮件,使用的TCP连接,TCP向上层提供的是面向连接的,可靠的数据传输服务。 第二题: 解析:物理层-不归零编码和曼彻斯特编码 编码1:电平在…...
C++ const关键字
const 1. 修饰变量(包括函数参数 函数返回值) const int v0 10; v0 0; // error 不能修改const修饰的变量 2. 修饰指针 int v1 10; int v2 20; int v3 30; 2.1 常量指针 const 在指针左边,左定值,即不能通过指针修改该…...
python爬虫案例——腾讯网新闻标题(异步加载网站数据抓取,post请求)(6)
文章目录 前言1、任务目标2、抓取流程2.1 分析网页2.2 编写代码2.3 思路分析前言 本篇案例主要讲解异步加载网站如何分析网页接口,以及如何观察post请求URL的参数,网站数据并不难抓取,主要是将要抓取的数据接口分析清楚,才能根据需求编写想要的代码。 1、任务目标 目标网…...
LeetCode416:分割等和子集
题目链接:416. 分割等和子集 - 力扣(LeetCode) 代码如下: class Solution { public:bool canPartition(vector<int>& nums) {int m nums.size();vector<int> dp(10010, 0);int sum 0;for(int i 0; i < m;…...
自定义异常注解处理框架
首先我们定义两个用于检验string和List的注解 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/*** author caiyi.yu* 自定义非空判断*/ Target(Elemen…...
【小程序】微信小程序课程 -3 快速上手之常用方法
目录 1、 对话框 1.1 模态对话框 1.2 消息对话框 2、 存储 2.1 同步 2.1.1 同步保存数据 2.1.2 同步获取数据 2.1.3 同步删除数据 2.1.4 同步清空数据 2.2 异步 2.2.1 异步保存数据 2.2.2 异步获取数据 2.2.3 异步删除数据 2.2.4 异步清空数据 3、 上拉加载更多…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
