当前位置: 首页 > news >正文

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视觉任务&#xff0c;它涉及在视频或者图片序列中填补缺失或损坏的区域&#xff0c;同时保持空间和时间的连贯性。该技术在视频补全、对象移除、视频恢复等领域有广泛应用。近年来&#xff0c;两种突出的方案在视频修复中崭露头角&…...

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) 将一个分解的传递函数表示方式转换。 将单输入/多输出&#xff08;SIMO&#xff09;系统的多输出…...

解决:uniapp项目中调用小程序的chooseAddress() API失效

目录 问题描述 解决方案 问题描述 使用 Hbuilder X 编辑器和 uni-app 框架开发小程序项目&#xff0c;在调用小程序提供的 uni.chooseAddress() API实现选择收货地址的功能时&#xff0c;点击选择收货地址没有反应&#xff0c;获取不到用户收货地址&#xff0c;API失效了 …...

2023 项目组总结(待完善)

2023 项目组总结 目录概述需求&#xff1a; 设计思路实现思路分析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&#xff0c;skip hardness,make a better re…...

Chrome浏览器 键盘快捷键整理

名人说&#xff1a;莫听穿林打叶声&#xff0c;何妨吟啸且徐行。—— 苏轼《定风波莫听穿林打叶声》 本篇笔记整理&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 〇、前言一、常用快捷键二、分类型快捷键表&#xff08;…...

【JAVA】集合与背后的逻辑框架,包装类,List,Map,Set,静态内部类

❤️ Author&#xff1a; 老九 ☕️ 个人博客&#xff1a;老九的CSDN博客 &#x1f64f; 个人名言&#xff1a;不可控之事 乐观面对 &#x1f60d; 系列专栏&#xff1a; 文章目录 collectionCollection创建collection使用泛型collection方法 Map 接口Map的存储结构HashMap和Tr…...

mac电脑版数字图像处理软件:ACDSee Photo Studio 9最新 for Mac

ACDSee Photo Studio 9是一款由ACD Systems开发的功能强大的照片管理和编辑软件&#xff0c;专为Mac用户提供一站式解决方案&#xff0c;方便用户轻松浏览、管理和编辑照片。该软件提供了许多实用的工具和功能&#xff0c;包括高效的导入和排序工具、强大的编辑工具、智能组织和…...

酷开系统 | 酷开科技让你放肆嗨唱,聆听内心最真实的声音

在这个喧嚣的城市里&#xff0c;每个人都像是一座孤岛&#xff0c;漂浮在茫茫人海之中&#xff0c;我们总是忙于奔波在各种琐事之间&#xff0c;渐渐忘记了内心深处的声音&#xff0c;我们压抑自己的情感&#xff0c;害怕被误解、被批评&#xff0c;然而真正的我们&#xff0c;…...

PC电脑 VMware安装的linux CentOs7如何扩容磁盘?

一、VM中进行扩容设置 必须要关闭当前CentOS&#xff0c;不然扩展按钮是灰色的。 输入值必须大于当前磁盘容量。然后点击扩展&#xff0c;等待扩展完成会提示一个弹框&#xff0c;点击确定&#xff0c;继续确定。 二、操作CentOS扩容——磁盘分区 第一步设置完成。那就启动 …...

redis极速的奥秘

文章目录 1.基于内存存储实现2.高效的数据结构3.合理的数据编码4.合理的线程模型5. 虚拟内存机制实现原理 1.基于内存存储实现 内存读写是比在磁盘快很多的&#xff0c;Redis 基于内存存储实现的数据库&#xff0c;相对于数据存在磁盘的 MySQL 数据库&#xff0c;省去磁盘 I/O…...

three.js之初识three.js

什么是three.js Three.js是一款运行在浏览器中的 3D 引擎&#xff08;基于WebGL的API的封装&#xff09; 什么是WebGL&#xff1f; WebGL&#xff08;英语&#xff1a;Web Graphics Library&#xff09;是一种3D绘图协议&#xff0c;这种绘图技术标准允许把JavaScript和Open…...

二维码智慧门牌管理系统:地址管理的现代革命

文章目录 前言一、标准地址的革新二、广泛的应用前景 前言 在科技不断发展和社会进步的背景下&#xff0c;高效、精准、智能的管理系统已经成为当今社会的迫切需求。传统的门牌管理系统在应对这一需求方面已显得力不从心&#xff0c;因此&#xff0c;二维码智慧门牌管理系统的…...

BricsCAD 23 for Mac:轻松驾驭CAD建模的强大工具

如果你正在寻找一款功能强大、操作简便的CAD建模软件&#xff0c;那么BricsCAD 23 for Mac绝对值得你考虑。这款软件将为你提供一套完整的2D和3D设计解决方案&#xff0c;让你在Mac上轻松创建、编辑和修改图形。 一、BricsCAD 23的功能特点 高效的2D和3D建模&#xff1a;Bric…...

如何利用Web应用防火墙应对未知威胁

网络安全是一个永恒的话题&#xff0c;尤其是在未知威胁不断涌现的情况下。Web应用防火墙&#xff08;WAF&#xff09;是企业网络安全防线的重要组成部分&#xff0c;能够帮助企业在面对未知威胁时采取有效的防护措施。本文将探讨如何利用Web应用防火墙应对未知的网络威胁。 一…...

四、多线程服务器

1.进程的缺陷和线程的优点 1.进程的缺陷 创建进程&#xff08;复制&#xff09;的工作本身会给操作系统带来相当沉重的负担。 而且&#xff0c;每个进程具有独立的内存空间&#xff0c;所以进程间通信的实现难度也会随之提高。 同时&#xff0c;上下文切换&#xff08;Cont…...

基于vue实现滑块动画效果

主要实现&#xff1a;通过鼠标移移动、触摸元素、鼠标释放、离开元素事件来进行触发 创建了一个滑动盒子&#xff0c;其中包含一个滑块图片。通过鼠标按下或触摸开始事件&#xff0c;开始跟踪滑块的位置和鼠标/触摸位置之间的偏移量。然后&#xff0c;通过计算偏移量和起始时的…...

探寻蓝牙的未来:从蓝牙1.0到蓝牙5.4,如何引领无线连接革命?

►►►蓝牙名字的来源 这要源于一个小故事&#xff0c;公元940-985年&#xff0c;哈洛德布美塔特(Harald Blatand)&#xff0c;后人称Harald Bluetooth&#xff0c;统一了整个丹麦。他的名字“Blatand”可能取自两个古老的丹麦词语。“bla”意思是黑皮肤的&#xff0c;而“tan…...

Amphenol ICC RJE1Y62A8327E401线束解析

在工业自动化、通信系统和高端电子设备中&#xff0c;线束组件不仅是连接器件的基础&#xff0c;更是保证系统信号完整性、电源稳定性和长期可靠运行的关键部件。今天&#xff0c;我们深度解析Amphenol ICC (Commercial Products)旗下的工业级线束型号RJE1Y62A8327E401&#xf…...

嵌入式以太网模块WIZ5500应用指南:从SPI接口到物联网稳定连接

1. 项目概述&#xff1a;为什么你的物联网项目需要一个有线网络“锚点”无线网络&#xff08;Wi-Fi&#xff09;确实方便&#xff0c;但做过几个实际项目的朋友都知道&#xff0c;它的“方便”有时是建立在“不确定性”之上的。信号波动、信道拥堵、复杂的认证流程&#xff0c;…...

Perplexity搜索响应延迟超800ms?紧急修复手册:从LLM路由策略到本地缓存穿透的5层优化路径

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Perplexity搜索响应延迟超800ms&#xff1f;紧急修复手册&#xff1a;从LLM路由策略到本地缓存穿透的5层优化路径 当Perplexity风格的语义搜索接口P95延迟持续突破800ms&#xff0c;用户会感知明显卡顿…...

Armbian重置前的数据保卫战——备份与迁移的5层防护策略

备份就像买保险——平时觉得麻烦,出事时觉得买少了。 引言:那个让我彻夜未眠的晚上 凌晨三点,我的香橙派突然失联了。 SSH连不上,ping不通,插显示器一看——文件系统只读,内核panic。前一天刚折腾完Docker网络配置,手贱改了个内核参数,重启后直接翻车。 那一刻,我脑…...

AI编程助手规则库实战:从通用到专用的效率跃迁

1. 项目概述&#xff1a;当你的光标有了“规矩”最近在逛GitHub的时候&#xff0c;发现了一个挺有意思的项目&#xff0c;叫“awesome-cursorrules-zh”。光看名字&#xff0c;你可能会有点懵&#xff0c;“Cursor”是那个AI编程工具&#xff0c;“rules”是规则&#xff0c;那…...

换背景颜色怎么操作?5分钟掌握证件照、商品图换底色的完整指南

最近有不少朋友问我&#xff0c;证件照背景太丑怎么办&#xff1f;电商产品图背景杂乱怎么处理&#xff1f;其实换背景颜色没有想象中那么复杂&#xff0c;今天就把我用过的所有方法和工具整理出来&#xff0c;帮你彻底解决这个问题。为什么要学会换背景颜色先说说我为什么突然…...

跟着 MDN 学 HTML day_51:(深入理解 XPathEvaluator 接口)

在前端开发中&#xff0c;我们经常需要对 DOM 树进行复杂的节点查询。虽然 querySelector 和 querySelectorAll 已经能够满足大部分 CSS 选择器需求&#xff0c;但在某些场景下&#xff0c;我们需要更强大的查询能力&#xff0c;比如根据节点的文本内容查找、根据属性是否存在进…...

从MC1496乘法器到DSB调制:一个经典电路的设计实践与参数解析

1. DSB调制基础与MC1496乘法器简介 第一次接触DSB调制电路时&#xff0c;我被那个看似简单的波形变换背后精妙的数学原理深深吸引。DSB&#xff08;Double Sideband&#xff09;双边带调制&#xff0c;本质上是用低频信号去控制高频载波的幅度&#xff0c;但与传统AM调制不同&a…...

HarmonyOS 6 CustomDialog 嵌套弹窗使用文档

文章目录完整代码弹窗嵌套结构1. 弹窗层级关系2. 嵌套实现关键逻辑核心参数与API1. CustomDialog 装饰器2. CustomDialogController 弹窗控制器3. 关闭拦截 onWillDismiss4. 数据双向绑定 Link5. 生命周期管理总结完整代码 // xxx.ets CustomDialog struct CustomDialogExampl…...

WinRAR隐藏技能:除了.rar和.zip,批处理还能压成啥?附参数避坑指南

WinRAR命令行进阶指南&#xff1a;解锁隐藏压缩格式与参数避坑实战 在大多数用户的认知里&#xff0c;WinRAR只是个能处理.rar和.zip文件的图形化工具。但它的命令行版本却隐藏着一个完全不同的世界——支持超过20种压缩格式转换、批量自动化处理、甚至能实现文件系统级操作。本…...