GO-实现简单文本格式 文本字体颜色、大小、突出
毫无疑问GO的生态就是一坨大便。老子英文水平小学啊。
实现简单文本格式 文本字体颜色、大小、突出显示等。
创建要给docx文件容器【我估算的】
doc := document.New()
defer doc.Close()
doc.SaveToFile("simple.docx") 把容器保存为文件
设置标题
创建自然段Paragraph
run设置文本内容
para := doc.AddParagraph()
run := para.AddRun()
para.SetStyle("Title")
run.AddText("Simple Document Formatting")
效果图
设置缩进
para = doc.AddParagraph()
para.Properties().SetFirstLineIndent(0.5 * measurement.Inch)run = para.AddRun()
run.AddText("A run is a string of characters with the same formatting. ")
设置粗体、字体、大小、颜色
run = para.AddRun()
run.Properties().SetBold(true)
run.Properties().SetFontFamily("Courier")
run.Properties().SetSize(15)
run.Properties().SetColor(color.Red)
run.AddText("Multiple runs with different formatting can exist in the same paragraph. ")
换行
run.AddBreak()
run = para.AddRun()
run.AddText("Adding breaks to a run will insert line breaks after the run. ")
run.AddBreak()
run.AddBreak()
输入文本
run = createParaRun(doc, "Runs support styling options:")
大写
run = createParaRun(doc, "small caps")run.Properties().SetSmallCaps(true)
画线和画两条
run = createParaRun(doc, "strike")run.Properties().SetStrikeThrough(true)run = createParaRun(doc, "double strike")run.Properties().SetDoubleStrikeThrough(true)
其他
run = createParaRun(doc, "outline")run.Properties().SetOutline(true)run = createParaRun(doc, "emboss")run.Properties().SetEmboss(true)run = createParaRun(doc, "shadow")run.Properties().SetShadow(true)run = createParaRun(doc, "imprint")run.Properties().SetImprint(true)run = createParaRun(doc, "highlighting")run.Properties().SetHighlight(wml.ST_HighlightColorYellow)run = createParaRun(doc, "underline")run.Properties().SetUnderline(wml.ST_UnderlineWavyDouble, color.Red)run = createParaRun(doc, "text effects")run.Properties().SetEffect(wml.ST_TextEffectAntsRed)//选择编号样式?
nd := doc.Numbering.Definitions()[0]for i := 1; i < 5; i++ {p := doc.AddParagraph()
//设置编号等级?p.SetNumberingLevel(i - 1)
//设置编号样式p.SetNumberingDefinition(nd)run := p.AddRun()run.AddText(fmt.Sprintf("Level %d", i))}
完整DEMO代码
// Copyright 2017 FoxyUtils ehf. All rights reserved.
package main
//导包
import ( "fmt""os""github.com/unidoc/unioffice/color""github.com/unidoc/unioffice/common/license""github.com/unidoc/unioffice/document""github.com/unidoc/unioffice/measurement""github.com/unidoc/unioffice/schema/soo/wml"
)
//资本家的密钥
func init() {// Make sure to load your metered License API key prior to using the library.// If you need a key, you can sign up and create a free one at https://cloud.unidoc.ioerr := license.SetMeteredKey(os.Getenv(`UNIDOC_LICENSE_API_KEY`))if err != nil {panic(err)}
}func main() {//创建docdoc := document.New()
//关闭docdefer doc.Close()para := doc.AddParagraph()run := para.AddRun()para.SetStyle("Title")run.AddText("Simple Document Formatting")para = doc.AddParagraph()para.SetStyle("Heading1")run = para.AddRun()run.AddText("Some Heading Text")para = doc.AddParagraph()para.SetStyle("Heading2")run = para.AddRun()run.AddText("Some Heading Text")para = doc.AddParagraph()para.SetStyle("Heading3")run = para.AddRun()run.AddText("Some Heading Text")para = doc.AddParagraph()para.Properties().SetFirstLineIndent(0.5 * measurement.Inch)run = para.AddRun()run.AddText("A run is a string of characters with the same formatting. ")run = para.AddRun()run.Properties().SetBold(true)run.Properties().SetFontFamily("Courier")run.Properties().SetSize(15)run.Properties().SetColor(color.Red)run.AddText("Multiple runs with different formatting can exist in the same paragraph. ")run = para.AddRun()run.AddText("Adding breaks to a run will insert line breaks after the run. ")run.AddBreak()run.AddBreak()run = createParaRun(doc, "Runs support styling options:")run = createParaRun(doc, "small caps")run.Properties().SetSmallCaps(true)run = createParaRun(doc, "strike")run.Properties().SetStrikeThrough(true)run = createParaRun(doc, "double strike")run.Properties().SetDoubleStrikeThrough(true)run = createParaRun(doc, "outline")run.Properties().SetOutline(true)run = createParaRun(doc, "emboss")run.Properties().SetEmboss(true)run = createParaRun(doc, "shadow")run.Properties().SetShadow(true)run = createParaRun(doc, "imprint")run.Properties().SetImprint(true)run = createParaRun(doc, "highlighting")run.Properties().SetHighlight(wml.ST_HighlightColorYellow)run = createParaRun(doc, "underline")run.Properties().SetUnderline(wml.ST_UnderlineWavyDouble, color.Red)run = createParaRun(doc, "text effects")run.Properties().SetEffect(wml.ST_TextEffectAntsRed)nd := doc.Numbering.Definitions()[0]for i := 1; i < 5; i++ {p := doc.AddParagraph()p.SetNumberingLevel(i - 1)p.SetNumberingDefinition(nd)run := p.AddRun()run.AddText(fmt.Sprintf("Level %d", i))}doc.SaveToFile("simple.docx")
}func createParaRun(doc *document.Document, s string) document.Run {para := doc.AddParagraph()run := para.AddRun()run.AddText(s)return run
}
相关文章:
GO-实现简单文本格式 文本字体颜色、大小、突出
毫无疑问GO的生态就是一坨大便。老子英文水平小学啊。 实现简单文本格式 文本字体颜色、大小、突出显示等。 创建要给docx文件容器【我估算的】 doc : document.New() defer doc.Close() doc.SaveToFile("simple.docx") 把容器保存为文件 设置标题 创建自然段…...
铅华洗尽,粉黛不施,人工智能AI基于ProPainter技术去除图片以及视频水印(Python3.10)
视频以及图片修复技术是一项具有挑战性的AI视觉任务,它涉及在视频或者图片序列中填补缺失或损坏的区域,同时保持空间和时间的连贯性。该技术在视频补全、对象移除、视频恢复等领域有广泛应用。近年来,两种突出的方案在视频修复中崭露头角&…...
latex,不带行号的algorithm
\usepackage{algorithm,algorithmic}\begin{algorithm} \caption{The Example Algorithm} \label{alg123} \begin{algorithmic} \STATE{\textbf{Input:} ...} \STATE{\textbf{Output:} ...} \IF{...} \STATE{...} \ENDIF \RETURN{...} \end{algorithmic} \end{algorithm}...
RocketMQ高性能核心原理与源码架构剖析
文章目录 一、源码环境搭建主要功能模块源码启动服务启动nameServer启动Broker发送消息消费消息 二、源码热身阶段NameServer的启动过程关注重点源码重点 Broker服务启动过程关注重点源码重点 Netty服务注册框架关注重点源码重点关于RocketMQ的同步结果推送与异步结果推送 Brok…...
MATLAB中zp2tf函数用法
目录 语法 说明 示例 质点弹簧系统的传递函数 zp2tf函数的功能是将零极点增益滤波器参数转换为传递函数形式。。 语法 [b,a] zp2tf(z,p,k) 说明 [b, a] zp2tf(z, p, k) 将一个分解的传递函数表示方式转换。 将单输入/多输出(SIMO)系统的多输出…...
解决:uniapp项目中调用小程序的chooseAddress() API失效
目录 问题描述 解决方案 问题描述 使用 Hbuilder X 编辑器和 uni-app 框架开发小程序项目,在调用小程序提供的 uni.chooseAddress() API实现选择收货地址的功能时,点击选择收货地址没有反应,获取不到用户收货地址,API失效了 …...
2023 项目组总结(待完善)
2023 项目组总结 目录概述需求: 设计思路实现思路分析1.JA项目2.XC项目3.XL 项目4.tydic 项目 总结 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better re…...
Chrome浏览器 键盘快捷键整理
名人说:莫听穿林打叶声,何妨吟啸且徐行。—— 苏轼《定风波莫听穿林打叶声》 本篇笔记整理:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 〇、前言一、常用快捷键二、分类型快捷键表(…...
【JAVA】集合与背后的逻辑框架,包装类,List,Map,Set,静态内部类
❤️ Author: 老九 ☕️ 个人博客:老九的CSDN博客 🙏 个人名言:不可控之事 乐观面对 😍 系列专栏: 文章目录 collectionCollection创建collection使用泛型collection方法 Map 接口Map的存储结构HashMap和Tr…...
mac电脑版数字图像处理软件:ACDSee Photo Studio 9最新 for Mac
ACDSee Photo Studio 9是一款由ACD Systems开发的功能强大的照片管理和编辑软件,专为Mac用户提供一站式解决方案,方便用户轻松浏览、管理和编辑照片。该软件提供了许多实用的工具和功能,包括高效的导入和排序工具、强大的编辑工具、智能组织和…...
酷开系统 | 酷开科技让你放肆嗨唱,聆听内心最真实的声音
在这个喧嚣的城市里,每个人都像是一座孤岛,漂浮在茫茫人海之中,我们总是忙于奔波在各种琐事之间,渐渐忘记了内心深处的声音,我们压抑自己的情感,害怕被误解、被批评,然而真正的我们,…...
PC电脑 VMware安装的linux CentOs7如何扩容磁盘?
一、VM中进行扩容设置 必须要关闭当前CentOS,不然扩展按钮是灰色的。 输入值必须大于当前磁盘容量。然后点击扩展,等待扩展完成会提示一个弹框,点击确定,继续确定。 二、操作CentOS扩容——磁盘分区 第一步设置完成。那就启动 …...
redis极速的奥秘
文章目录 1.基于内存存储实现2.高效的数据结构3.合理的数据编码4.合理的线程模型5. 虚拟内存机制实现原理 1.基于内存存储实现 内存读写是比在磁盘快很多的,Redis 基于内存存储实现的数据库,相对于数据存在磁盘的 MySQL 数据库,省去磁盘 I/O…...
three.js之初识three.js
什么是three.js Three.js是一款运行在浏览器中的 3D 引擎(基于WebGL的API的封装) 什么是WebGL? WebGL(英语:Web Graphics Library)是一种3D绘图协议,这种绘图技术标准允许把JavaScript和Open…...
二维码智慧门牌管理系统:地址管理的现代革命
文章目录 前言一、标准地址的革新二、广泛的应用前景 前言 在科技不断发展和社会进步的背景下,高效、精准、智能的管理系统已经成为当今社会的迫切需求。传统的门牌管理系统在应对这一需求方面已显得力不从心,因此,二维码智慧门牌管理系统的…...
BricsCAD 23 for Mac:轻松驾驭CAD建模的强大工具
如果你正在寻找一款功能强大、操作简便的CAD建模软件,那么BricsCAD 23 for Mac绝对值得你考虑。这款软件将为你提供一套完整的2D和3D设计解决方案,让你在Mac上轻松创建、编辑和修改图形。 一、BricsCAD 23的功能特点 高效的2D和3D建模:Bric…...
如何利用Web应用防火墙应对未知威胁
网络安全是一个永恒的话题,尤其是在未知威胁不断涌现的情况下。Web应用防火墙(WAF)是企业网络安全防线的重要组成部分,能够帮助企业在面对未知威胁时采取有效的防护措施。本文将探讨如何利用Web应用防火墙应对未知的网络威胁。 一…...
四、多线程服务器
1.进程的缺陷和线程的优点 1.进程的缺陷 创建进程(复制)的工作本身会给操作系统带来相当沉重的负担。 而且,每个进程具有独立的内存空间,所以进程间通信的实现难度也会随之提高。 同时,上下文切换(Cont…...
基于vue实现滑块动画效果
主要实现:通过鼠标移移动、触摸元素、鼠标释放、离开元素事件来进行触发 创建了一个滑动盒子,其中包含一个滑块图片。通过鼠标按下或触摸开始事件,开始跟踪滑块的位置和鼠标/触摸位置之间的偏移量。然后,通过计算偏移量和起始时的…...
探寻蓝牙的未来:从蓝牙1.0到蓝牙5.4,如何引领无线连接革命?
►►►蓝牙名字的来源 这要源于一个小故事,公元940-985年,哈洛德布美塔特(Harald Blatand),后人称Harald Bluetooth,统一了整个丹麦。他的名字“Blatand”可能取自两个古老的丹麦词语。“bla”意思是黑皮肤的,而“tan…...
QODER
...
从CPU到内存:用74LS74芯片手把手教你搭建一个D边沿触发器(附波形图分析)
从面包板到示波器:用74LS74芯片实战D边沿触发器的完整指南 当你第一次在数字电路课本上看到"D边沿触发器"这个词时,是否感觉它像是一个抽象的黑盒子?教科书上的真值表和波形图虽然精确,但总缺少那么一点"触手可及&…...
C++的std--ranges中的技术优化排序
C20引入的std::ranges库为算法操作带来了革命性改进,尤其在排序优化领域展现出强大的现代性。本文将深入探讨std::ranges如何通过结构化绑定、惰性求值和定制化投影等技术,实现更高效、更灵活的排序操作,为开发者提供超越传统STL的解决方案。…...
从编译错误到成功运行:手把手教你用CMake在Ubuntu 20.04上部署GeographicLib地理计算库
从编译错误到成功运行:手把手教你用CMake在Ubuntu 20.04上部署GeographicLib地理计算库 在Linux环境下部署开源库时,许多开发者会直接复制粘贴教程中的命令,却对背后的构建原理一知半解。以GeographicLib为例,这个被广泛应用于地理…...
Java程序员如何入门音视频开发
对于Java程序员来说,他们缺乏参与音频和视频项目的经验。如何快速开始?你需要立即学习C吗?答案是否定的。 成功的关键在于循序渐进,从扎实的理论基础入手。第一步是学习多媒体基础理论。一本名为“多媒体基础概论”的教科书&#…...
CAN总线数字信号特性与工程应用解析
1. CAN总线信号本质解析CAN总线采用数字信号传输机制,这是由其底层电气特性和协议设计决定的。在物理层上,CAN总线使用差分电压信号(CAN_H和CAN_L)表示逻辑状态:当CAN_H电压高于CAN_L约1.5V时表示显性位(逻…...
AXOrderBook:打造A股市场高效订单簿处理系统的完整指南
AXOrderBook:打造A股市场高效订单簿处理系统的完整指南 【免费下载链接】AXOrderBook A股订单簿工具,使用逐笔行情进行订单簿重建、千档快照发布、各档委托队列展示等,包括python模型和FPGA HLS实现。 项目地址: https://gitcode.com/gh_mi…...
3步打造你的专属AI角色扮演世界:SillyTavern终极指南
3步打造你的专属AI角色扮演世界:SillyTavern终极指南 【免费下载链接】SillyTavern LLM Frontend for Power Users. 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern 你是否厌倦了千篇一律的AI对话?是否渴望创造真正有灵魂的虚拟角…...
Vue3 模板引用 (ref):操作 DOM 与子组件实例 从入门到精通
前言 在 Vue 的数据驱动思想下,我们通常通过修改数据来驱动视图更新,避免直接操作 DOM。但在实际开发中,总会遇到一些非 DOM 不可的场景:比如获取输入框焦点、调用第三方库初始化画布、获取子组件的数据或方法等。 这时候…...
久鼎私域测流模式系统(现成方案)
久鼎私域测流模式系统是一套专注于私域流量监测与分析的解决方案,适用于企业精细化运营私域用户池。其核心功能包括流量来源追踪、用户行为分析、转化效果评估等,支持多平台数据整合。核心功能模块流量监测 实时监控私域流量入口(如小程序、公…...

