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

WPS JSA 宏脚本入门和样例

1入门

WPS window版本才支持JSA宏的功能。 可以自动化的操作文档中的一些内容。

参考文档:

WPS API 参考文档:https://open.wps.cn/previous/docs/client/wpsLoad

微软的Word API文档:Microsoft.Office.Interop.Word 命名空间 | Microsoft Learn

有问题,基本查看上面的两个文档,再加上百度搜索,就差不多了。

2 样例

function 选择所有图片()
{var arr = [...ActiveDocument.InlineShapes];// 关闭屏幕更新,提升执行效率Application.ScreenUpdating = false;ActiveDocument.DeleteAllEditableRanges(wdEditorEveryone);arr.forEach(shape=>{shape.Range.Editors.Add(wdEditorEveryone);});ActiveDocument.SelectAllEditableRanges(wdEditorEveryone);ActiveDocument.DeleteAllEditableRanges(wdEditorEveryone);// 开启屏幕更新Application.ScreenUpdating = true;	Console.log('批量设置【图片】完成。');MsgBox("选择完毕!");
}function 选择所有表格()
{var countT =0;var i = 0;	countT = ActiveDocument.Tables.Count;//计算文档中一共包含的表格数量。Application.ScreenUpdating = 0;ActiveDocument.DeleteAllEditableRanges(wdEditorEveryone);for(i=1;i<=countT;i++){ActiveDocument.Tables.Item(i).Range.Editors.Add(wdEditorEveryone);}ActiveDocument.SelectAllEditableRanges(wdEditorEveryone);ActiveDocument.DeleteAllEditableRanges(wdEditorEveryone);Application.ScreenUpdating = 1;MsgBox("表格完成批量调整,共计"+countT+"个!");
}function 选中有底纹表的Cell(){
Application.ScreenUpdating = 0;
ActiveDocument.DeleteAllEditableRanges(wdEditorEveryone);var countT =0;var i = 0;	countT = ActiveDocument.Tables.Count;//计算文档中一共包含的表格数量。console.log("处理到表格=" + 0 + ", 总共" + countT);for(i=1;i<=countT;i++){var tableObj = ActiveDocument.Tables.Item(i);var rowNum = tableObj.Rows.Count;var colNum = tableObj.Columns.Count;
//		console.log("aaa" + rowNum + " " + colNum);for(var j=1;j<=rowNum;j++){for(var k=1; k<= colNum; k++){try {var cell = tableObj.Cell(j,k);if(cell){console.log(cell.Shading.Texture);if(cell.Shading.BackgroundPatternColor != -16777216 || cell.Shading.Texture != 0){cell.Range.Editors.Add(wdEditorEveryone);}}} catch(e) {
//					console.log("bbb");}}}if(i%2000 == 0){console.log("处理到表格=" + i + ", 总共" + countT);}}ActiveDocument.SelectAllEditableRanges(wdEditorEveryone);ActiveDocument.DeleteAllEditableRanges(wdEditorEveryone);Application.ScreenUpdating = 1;MsgBox("选择完毕!");
}/*** 修改标题和正文样式*/
function 修改标题和正文样式_标题1到标题5和正文(){var countT = 0;var paragraphT = 0;var totalT = ActiveDocument.Paragraphs.Count;// 循环获取段落信息for(var i = 1; i <= totalT; i++){paragraphT ++;// 获取每个段落范围的内容var paragraphObj = ActiveDocument.Paragraphs.Item(i);//   获取范围样式var styleName = paragraphObj.Range.Style;// 如果样式返回结果为空,则继续循环下一个if(!styleName) continue;styleName = styleName.toString();console.log(styleName);// 过滤出标题段落switch(styleName){case '标题 1': countT++;editStyle1(paragraphObj);break;case '标题 2': countT++;editStyle2(paragraphObj);break;case '标题 3': countT++;editStyle3(paragraphObj);break;case '标题 4': countT++;editStyle4(paragraphObj);break;case '标题 5': countT++;editStyle5(paragraphObj);break;case '标题 6': countT++;editStyle5(paragraphObj);break;case '标题 7': countT++;editStyle5(paragraphObj);break;case '标题 8': countT++;editStyle5(paragraphObj);break;case '标题 9': countT++;editStyle5(paragraphObj);break;case '正文': countT++;editStyle(paragraphObj);break;case '文档正文': countT++;editStyle(paragraphObj);break;case '正文': countT++;editStyle(paragraphObj);break;case '标书正文': countT++;editStyle(paragraphObj);break;case '正文缩进': countT++;editStyle(paragraphObj);break;}if(paragraphT%5000 == 0){console.log("处理进度," + paragraphT + "个, 总共:"+ totalT)}}MsgBox("正文修改完毕!"+countT+"个!被修改了");
}/*** 标题1 格式*/
function editStyle1(paragraphObj){
//	console.log('标题1-' + paragraphObj.Range);// 设置字段样式 字体:小二宋体加粗;(font => {font.Blod = true;font.Size = 18;font.Name = "宋体";font.NameAscii = 'Times New Roman';})(paragraphObj.Range.Font);//设置标题段落的缩进setBiaotiSJ(paragraphObj);/*间距:段前段后:6磅;行距:1.5倍。*/(obj=>{/*本示例将活动文档中所有段落的段前间距设置为 6 磅。*/obj.SpaceBefore = 6;/*本示例将活动文档中所有段落的段后间距设置为 6 磅。*/obj.SpaceAfter = 6;/*为指定段落设置 1.5 倍行距。*/obj.LineSpacingRule = wdLineSpace1pt5;})(paragraphObj.Range.ParagraphFormat);
}/*** 标题2 格式*/
function editStyle2(paragraphObj){console.log('111' + paragraphObj.Range);paragraphObj.Range.Select();// 三号宋体加粗;(font => {font.Blod = true;font.Size = 16;font.Name = "宋体";font.NameAscii = 'Times New Roman';})(paragraphObj.Range.Font);/*段落的对齐方式 对齐方式:左对齐;*/paragraphObj.Alignment = wdAlignParagraphLeft;/*大纲级别:2级;*/paragraphObj.OutlineLevel = wdOutlineLevel2;//设置标题段落的缩进setBiaotiSJ(paragraphObj);//	paragraphObj.CharacterUnitFirstLineIndent = 0;
//	paragraphObj.IndentCharWidth(0);/*间距:段前段后:6磅;行距:1.5倍。*/(obj=>{/*本示例将活动文档中所有段落的段前间距设置为 6 磅。*/obj.SpaceBefore = 6;/*本示例将活动文档中所有段落的段后间距设置为 6 磅。*/obj.SpaceAfter = 6;/*为指定段落设置 1.5 倍行距。*/obj.LineSpacingRule = wdLineSpace1pt5;})(paragraphObj.Range.ParagraphFormat);
}/**
* 设置标题段落的缩进
*/
function setBiaotiSJ(paragraphObj){/*左侧、右侧:0字符;特殊格式:首行缩进,2字符*//* 该属性返回或设置指定段落的左缩进量(以字符为单位) */if(paragraphObj.LeftIndent != 0){paragraphObj.LeftIndent = 0;}if(paragraphObj.CharacterUnitLeftIndent != 0){paragraphObj.CharacterUnitLeftIndent = 0}
//	/* 该属性返回或设置指定段落的右缩进量(以字符为单位) */if(paragraphObj.RightIndent != 0){paragraphObj.RightIndent = 0;}if(paragraphObj.CharacterUnitRightIndent != 0){paragraphObj.CharacterUnitRightIndent = 0}/*设置首行缩进*/if(paragraphObj.FirstLineIndent != 0){paragraphObj.FirstLineIndent = 0;}if(paragraphObj.CharacterUnitFirstLineIndent != 0){paragraphObj.CharacterUnitFirstLineIndent = 0;}if(paragraphObj.LeftIndent != 0){paragraphObj.LeftIndent = 0;}if(paragraphObj.CharacterUnitLeftIndent != 0){paragraphObj.CharacterUnitLeftIndent = 0}
//	/* 该属性返回或设置指定段落的右缩进量(以字符为单位) */if(paragraphObj.RightIndent != 0){paragraphObj.RightIndent = 0;}if(paragraphObj.CharacterUnitRightIndent != 0){paragraphObj.CharacterUnitRightIndent = 0}/*设置首行缩进*/if(paragraphObj.FirstLineIndent != 0){paragraphObj.FirstLineIndent = 0;}if(paragraphObj.CharacterUnitFirstLineIndent != 0){paragraphObj.CharacterUnitFirstLineIndent = 0;}
}/*** 标题3 格式*/
function editStyle3(paragraphObj){// console.log('111' + paragraphObj.Range);// 小三宋体加粗;(font => {font.Blod = true;font.Size = 15;font.Name = "宋体";font.NameAscii = 'Times New Roman';})(paragraphObj.Range.Font);/*段落的对齐方式 对齐方式:左对齐;*/paragraphObj.Alignment = wdAlignParagraphLeft;/*大纲级别:3级;*/paragraphObj.OutlineLevel = wdOutlineLevel3;//设置标题段落的缩进setBiaotiSJ(paragraphObj);/*间距:段前段后:6磅;行距:1.5倍。*/(obj=>{/*本示例将活动文档中所有段落的段前间距设置为 6 磅。*/obj.SpaceBefore = 6;/*本示例将活动文档中所有段落的段后间距设置为 6 磅。*/obj.SpaceAfter = 6;/*为指定段落设置 1.5 倍行距。*/obj.LineSpacingRule = wdLineSpace1pt5;})(paragraphObj.Range.ParagraphFormat);
}/*** 标题4 格式*/
function editStyle4(paragraphObj){// console.log('111' + paragraphObj.Range);// 四号宋体加粗;(font => {font.Blod = true;font.Size = 14;font.Name = "宋体";font.NameAscii = 'Times New Roman';})(paragraphObj.Range.Font);/*段落的对齐方式 对齐方式:左对齐;*/paragraphObj.Alignment = wdAlignParagraphLeft;/*大纲级别:4级;*/paragraphObj.OutlineLevel = wdOutlineLevel4;//设置标题段落的缩进setBiaotiSJ(paragraphObj);/*间距:段前段后:6磅;行距:1.5倍。*/(obj=>{/*本示例将活动文档中所有段落的段前间距设置为 6 磅。*/obj.SpaceBefore = 6;/*本示例将活动文档中所有段落的段后间距设置为 6 磅。*/obj.SpaceAfter = 6;/*为指定段落设置 1.5 倍行距。*/obj.LineSpacingRule = wdLineSpace1pt5;})(paragraphObj.Range.ParagraphFormat);
}/*** 标题5 格式*/
function editStyle5(paragraphObj){// console.log('111' + paragraphObj.Range);// 小四宋体加粗;(font => {font.Blod = true;font.Size = 12;font.Name = "宋体";font.NameAscii = 'Times New Roman';})(paragraphObj.Range.Font);/*段落的对齐方式 对齐方式:左对齐;*/paragraphObj.Alignment = wdAlignParagraphLeft;/*大纲级别:5级;注释掉, 5、6、7、8、9 公用这个函数*/// paragraphObj.OutlineLevel = wdOutlineLevel5;//设置标题段落的缩进setBiaotiSJ(paragraphObj);/*间距:段前段后:6磅;行距:1.5倍。*/(obj=>{/*本示例将活动文档中所有段落的段前间距设置为 6 磅。*/obj.SpaceBefore = 6;/*本示例将活动文档中所有段落的段后间距设置为 6 磅。*/obj.SpaceAfter = 6;/*为指定段落设置 1.5 倍行距。*/obj.LineSpacingRule = wdLineSpace1pt5;})(paragraphObj.Range.ParagraphFormat);
}/*** 修改样式*/
function editStyle(paragraphObj){// console.log('333' + paragraphObj.Range);
// 中文:宋体 小四号, 西文:Times New Roman 小四号(font => {
//		font.Blod = false;font.Size = 12;font.Name = "宋体";font.NameAscii = 'Times New Roman';})(paragraphObj.Range.Font);/*段落的对齐方式 对齐方式:左对齐;*/paragraphObj.Alignment = wdAlignParagraphLeft;/*大纲级别:正文*/paragraphObj.OutlineLevel = wdOutlineLevelBodyText;/*左侧、右侧:0字符;特殊格式:首行缩进,2字符*//* 该属性返回或设置指定段落的左缩进量(以字符为单位) */paragraphObj.LeftIndent = 0;/* 该属性返回或设置指定段落的右缩进量(以字符为单位) */paragraphObj.RightIndent = 0;/*设置首行缩进*/paragraphObj.CharacterUnitFirstLineIndent  = 2;/*段前段后:0行;行距:1.5倍;*/(obj=>{/*本示例将活动文档中所有段落的段前间距设置为 6 磅。*/obj.SpaceBefore = 0;/*本示例将活动文档中所有段落的段后间距设置为 6 磅。*/obj.SpaceAfter = 0;/*为指定段落设置 1.5 倍行距。*/obj.LineSpacingRule = wdLineSpace1pt5;})(paragraphObj.Range.ParagraphFormat);
}function 所有表格上面添加表标题(){var countT =0;var i = 0;	countT = ActiveDocument.Tables.Count;//计算文档中一共包含的表格数量。console.log("处理到表格=" + 0 + ", 总共" + countT);var firstEmpty = false;for(i=1;i<=countT;i++){var tableObj = ActiveDocument.Tables.Item(i);
//		tableObj.Range.InsertParagraphBefore()
//	tableObj.Range.InsertBefore("Introduction")var rangeObj = tableObj.Range;var beforeRangeObj = rangeObj.Previous(wdParagraph, 1);if (!beforeRangeObj) {firstEmpty = true;//beforeRangeObj = Application.ActiveDocument.Paragraphs.Add(ActiveDocument.Paragraphs.Item(1).Range).RangebeforeRangeObj = Application.ActiveDocument.Range(0, 0)beforeRangeObj.InsertParagraph()}var paA = beforeRangeObj.Paragraphs.Item(1);console.log("000-" + paA.Alignment + "-" +wdAlignParagraphCenter) ;console.log(paA.Range.Text.length);console.log("222=" + paA.Range.Text);paA.Range.Select();//如果上段有居中,且长度大于2 就表名不处理if(paA.Alignment == wdAlignParagraphCenter && paA.Range.Text.length > 2){console.log("44444");} else {console.log("33333");
//    	    beforeRangeObj.Select();//	 rangeObj.Collapse(wdCollapseStart)//        beforeRangeObj.InsertParagraphAfter()beforeRangeObj.Collapse(wdCollapseEnd)//网上移动一个字符的位置beforeRangeObj.MoveEnd(wdCharacter, -1);//        beforeRangeObj.InsertParagraphAfter()if(firstEmpty){firstEmpty = false;} else {beforeRangeObj.InsertParagraph()}beforeRangeObj.InsertAfter("表 xxx");}var lastParagraph = beforeRangeObj.Paragraphs.Item(beforeRangeObj.Paragraphs.Count);
//    lastParagraph.Range.Select();changeStyleBBT(lastParagraph);if(i%2000 == 0){console.log("处理到表格=" + i + ", 总共" + countT);}}MsgBox("选择完毕!");
}/**
* 表标题样式设置
**/
function changeStyleBBT(paragraphObj){/*段落的对齐方式 对齐方式:居中;*/paragraphObj.Alignment = wdAlignParagraphCenter;// 宋体 五号 加粗(font => {font.Blod = true;font.Size = 10.5;//5号字font.Name = "宋体";
//		font.NameAscii = 'Times New Roman';})(paragraphObj.Range.Font);//段前段后:0行;行距:1.5行距;(obj=>{/*本示例将活动文档中所有段落的段前间距设置为 6 磅。*/obj.SpaceBefore = 0;/*本示例将活动文档中所有段落的段后间距设置为 6 磅。*/obj.SpaceAfter = 0;/*为指定段落设置 1.5 倍行距。*/obj.LineSpacingRule = wdLineSpace1pt5;})(paragraphObj.Range.ParagraphFormat);changeStyleBBT_CJ(paragraphObj);
}/**
* 表标题样式缩进
*/
function changeStyleBBT_CJ(paragraphObj){/*左侧、右侧:0字符;特殊格式:首行缩进,2字符*//* 该属性返回或设置指定段落的左缩进量(以字符为单位) */if(paragraphObj.LeftIndent != 0){paragraphObj.LeftIndent = 0;}if(paragraphObj.CharacterUnitLeftIndent != 0){paragraphObj.CharacterUnitLeftIndent = 0}
//	/* 该属性返回或设置指定段落的右缩进量(以字符为单位) */if(paragraphObj.RightIndent != 0){paragraphObj.RightIndent = 0;}if(paragraphObj.CharacterUnitRightIndent != 0){paragraphObj.CharacterUnitRightIndent = 0}/*设置首行缩进*/if(paragraphObj.FirstLineIndent != 0){paragraphObj.FirstLineIndent = 0;}if(paragraphObj.CharacterUnitFirstLineIndent != 0){paragraphObj.CharacterUnitFirstLineIndent = 0;}if(paragraphObj.LeftIndent != 0){paragraphObj.LeftIndent = 0;}if(paragraphObj.CharacterUnitLeftIndent != 0){paragraphObj.CharacterUnitLeftIndent = 0}
//	/* 该属性返回或设置指定段落的右缩进量(以字符为单位) */if(paragraphObj.RightIndent != 0){paragraphObj.RightIndent = 0;}if(paragraphObj.CharacterUnitRightIndent != 0){paragraphObj.CharacterUnitRightIndent = 0}/*设置首行缩进*/if(paragraphObj.FirstLineIndent != 0){paragraphObj.FirstLineIndent = 0;}if(paragraphObj.CharacterUnitFirstLineIndent != 0){paragraphObj.CharacterUnitFirstLineIndent = 0;}
}

3 录制脚本

如果有些API搜索不到,可以通过录制脚本,看看WPS生成的脚本是怎么写的。

相关文章:

WPS JSA 宏脚本入门和样例

1入门 WPS window版本才支持JSA宏的功能。 可以自动化的操作文档中的一些内容。 参考文档&#xff1a; WPS API 参考文档&#xff1a;https://open.wps.cn/previous/docs/client/wpsLoad 微软的Word API文档&#xff1a;Microsoft.Office.Interop.Word 命名空间 | Microsoft …...

Printing and Exporting

打印 大多数DevExpress。NET控件&#xff08;XtraGrid、XtraPivotGrid、XttraTreeList、XtraScheduler、XtraCharts&#xff09;提供打印和导出功能。 所有可打印的DevExpress.NET控件是使用XtraPrinting库提供的方法打印的。 若要确定预览和打印选项是否可用&#xff0c;请检…...

c++【入门】正多边形每个内角的度数

限制 时间限制 : 1 秒 内存限制 : 128 MB 题目 根据多边形内角和定理&#xff0c;正多边形内角和等于&#xff1a;&#xff08;n &#xff0d; 2&#xff09;180(n大于等于3且n为整数&#xff09;&#xff08;如下图所示是三角形、四边形、五边形、六边形的形状&#xff09…...

spring boot3登录开发-邮箱登录/注册接口实现

⛰️个人主页: 蒾酒 &#x1f525;系列专栏&#xff1a;《spring boot实战》 &#x1f30a;山高路远&#xff0c;行路漫漫&#xff0c;终有归途 目录 写在前面 上文衔接 内容简介 功能分析 所需依赖 邮箱验证登录/注册实现 1.创建交互对象 2.登录注册业务逻辑实…...

数据结构-二叉搜索树

二叉搜索树&#xff1a;BST(Binary Search Tree) 二叉搜索树是二叉树&#xff0c;可以为空&#xff0c;如果不为空&#xff0c;满足以下性质&#xff1a; 非空左子树的所有键值小于其根节点的键值非空右子树的所有键值大于其根节点的键值左、右字数本身也都是二叉搜索树 二叉…...

JUnit:Java开发者不可或缺的单元测试框架

在软件开发过程中&#xff0c;测试是确保代码质量的关键环节。单元测试作为测试体系的基础&#xff0c;对提升代码质量、降低bug率、增强软件稳定性具有重要作用。JUnit 作为 Java 语言事实上的标准单元测试框架&#xff0c;已经成为 Java 开发者进行单元测试的首选工具。本文将…...

NG32单片机GPIO口配置方式

目录 一、引言 二、GPIO口基本结构 三、GPIO口配置方式 四、工作原理 五、总结 一、引言 NG32单片机是一款集成度高、功能强大的微控制器。其中&#xff0c;GPIO&#xff08;General Purpose Input/Output&#xff09;口作为单片机与外部设备通信的重要接口&#xff0c;具…...

SpringCloud-OpenFeign拓展-连接池、最佳使用方法、日志输出

目录 1 OpenFeign连接池 1.1 常见连接类型 1.2 连接池使用方法 1.2.1 引入依赖 1.2.2 开启连接池功能 1.2.3 配置完成&#xff0c;重启实例即可&#xff0c;底层将更改设置。 2 OpenFeign最佳使用方法 2.1 每个微服务都是单独的project&#xff0c;内部有三个独立模块 …...

跨链协议中Cosmos IBC、Polkadot/XCM、Celer Network的区别以及用途

跨链协议是实现不同区块链之间通信和价值转移的关键技术。Cosmos IBC、Polkadot/XCM 和 Celer Network 是三个在跨链领域内具有代表性的协议&#xff0c;它们各自有着独特的设计理念和应用场景。下面是这三个协议的详细对比&#xff1a; Cosmos IBC (Inter-Blockchain Communi…...

电子画册制作与传统画册相比,有哪些优势?

在当今数字化时代&#xff0c;电子画册作为一种新兴的媒体形式&#xff0c;其制作与传统画册相比具有显著的优势。以下是对这些优势的详细探讨。 首先&#xff0c;电子画册的制作过程通常更加便捷和经济。相较于传统画册需要经历的繁琐的印刷过程&#xff0c;电子画册的制作大多…...

postman如何导入证书

1、打开postman&#xff0c;点击Settings。 2、添加证书。 3、填写要访问平台的URL路径及端口、证书文件、证书密码。 4、添加完之后即可立即调用postman。...

RocketMQ教程(八):RocketMQ的集群搭建

传送门:RocketMQ教程汇总,让你从入门到精通 集群架构 RocketMQ 的各个组件都可以搭建成集群部署,Broker 还可以搭建成主从架构,下面介绍的主要是 Broker 集群。 数据复制策略 复制策略是Broker的Master与Slave间的数据同步方式。分为同步复制与异步复制: 同步复制 消…...

线上观看人次2万+!「飞天技术沙龙-CentOS 迁移替换专场」北京站圆满结束

5 月 29 日&#xff0c;阿里云联合龙蜥社区共同举办的「飞天技术沙龙-CentOS 迁移替换专场」于北京圆满结束&#xff0c;在线观看人次 2 万。本次活动现场汇聚了来自浪潮信息、Intel、龙芯、统信软件、红旗软件、电子五所等多家操作系统产业头部企业和机构&#xff0c;大家围绕…...

Docker基本架构概览-1

Docker基本架构概览 Docker架构 Docker采用客户端-服务器&#xff08;C/S&#xff09;架构&#xff0c;主要组件包括&#xff1a; Docker Client 用户与Docker交互的接口&#xff0c;发送命令到Docker守护进程。 Docker Daemon 运行在后台&#xff0c;接收并处理Docker客户端…...

OZON云仓靠谱吗,OZON云仓垫资提货模式

在电商飞速发展的今天&#xff0c;物流仓储成为了支撑整个电商生态的重要基石。OZON云仓作为市场上新兴的仓储物流服务提供商&#xff0c;凭借其先进的技术和灵活的服务模式&#xff0c;受到了不少电商卖家和消费者的关注。但随之而来的是一系列疑问&#xff1a;OZON云仓靠谱吗…...

数据集笔记:DGraph 大规模动态图数据集

dgraph-web (xinye.com) 1 数据集介绍 DGraph 是一个有向无权的动态图&#xff0c;包含超过 370 万个节点以及 430 万条动态边DGraph 中的节点表示金融借贷用户&#xff0c;有向边表示紧急联系人关系&#xff0c;每个节点包含脱敏后的属性特征&#xff0c;以及表示是否为金融…...

一些常用的git指令总结

1、git add 文件名 &#xff1a;该 命令可将该文件的修改添加到暂存区 比如&#xff1a;我刚刚修改了my_test.cpp文件&#xff0c;这时就可以使用git add my_test.cpp. 就将该修改添加到了暂存区。 2、git commit -m "......说明" 就是将当前的修改记录提交到本地…...

【HarmonyOS】遇见的问题汇总

一、当前编辑的页面&#xff0c;预览打不开 1、问题说明 当前编辑的页面&#xff0c;预览打不开&#xff0c;日志提示如下&#xff1a; Route information is not configured for the current page. To avoid possible redirection issues, configure route information for…...

C# NX二次开发-获取圆弧中心点和半径

使用UF函数可以获取圆弧边或圆弧线中心点和半径: 1.使用 UF_CURVE_ask_arc_data: theUf.Curve.AskArcData(edge.Tag, out UFCurve.Arc arc);theUf.Curve.CreateArc(ref arc, out Tag arc_tag);double[] matrix_values new double[9];double[] vec_product new double[3];theU…...

鸿蒙原生应用元服务开发-位置服务地理编码转化开发

&#xff08;逆&#xff09;地理编码转化开发 场景概述 使用坐标描述一个位置&#xff0c;非常准确&#xff0c;但是并不直观&#xff0c;面向用户表达并不友好。系统向开发者提供了以下两种转化能力。 地理编码转化&#xff1a;将地理描述转化为具体坐标。 逆地理编码转化能力…...

MBPFan技术解析:MacBook在Linux环境下的智能散热控制机制

MBPFan技术解析&#xff1a;MacBook在Linux环境下的智能散热控制机制 【免费下载链接】mbpfan 项目地址: https://gitcode.com/gh_mirrors/mb/mbpfan 在Linux系统上使用MacBook的用户经常面临散热管理的技术挑战&#xff0c;系统原生的温度控制策略往往无法充分发挥苹果…...

突破2048游戏瓶颈:AI助手的全方位策略支持

突破2048游戏瓶颈&#xff1a;AI助手的全方位策略支持 【免费下载链接】2048-ai AI for the 2048 game 项目地址: https://gitcode.com/gh_mirrors/20/2048-ai 为何数字方块总是难以合并到2048&#xff1f; 你是否曾在2048游戏中遭遇这样的困境&#xff1a;屏幕上的数字…...

能耗效率比拼:百川2-13B量化版在OpenClaw长时间任务中的表现

能耗效率比拼&#xff1a;百川2-13B量化版在OpenClaw长时间任务中的表现 1. 测试背景与目标 最近在探索如何用OpenClaw实现个人工作流的自动化时&#xff0c;遇到一个现实问题&#xff1a;当需要长时间运行自动化任务时&#xff0c;本地设备的能耗和稳定性会成为瓶颈。我决定…...

CasRel开源镜像部署教程:适配低显存(12GB)GPU的轻量级方案

CasRel开源镜像部署教程&#xff1a;适配低显存&#xff08;12GB&#xff09;GPU的轻量级方案 1. 前言&#xff1a;为什么选择这个方案 如果你正在处理文本数据&#xff0c;想要自动提取人物、地点、事件之间的关系&#xff0c;那么关系抽取技术就是你需要的工具。CasRel作为…...

开源视觉模型推荐:GLM-4v-9B,高分辨率输入,中文OCR领先

开源视觉模型推荐&#xff1a;GLM-4v-9B&#xff0c;高分辨率输入&#xff0c;中文OCR领先 1. 引言 在当今多模态AI快速发展的时代&#xff0c;视觉-语言模型正成为技术前沿的热点。GLM-4v-9B作为智谱AI最新开源的90亿参数视觉-语言多模态模型&#xff0c;凭借其11201120高分…...

从51单片机到STM32:我的裸机架构升级踩坑实录(附代码片段)

从51单片机到STM32&#xff1a;我的裸机架构升级踩坑实录 第一次用STM32F103替换掉手头的STC89C52时&#xff0c;我对着闪烁的LED灯陷入了沉思——这个32位的"怪兽"显然不应该继续沿用51那套超级循环的编程方式。三年前那个在延时函数里死等按键响应的菜鸟程序员&…...

NsEmuTools:开源模拟器管理工具的质量保障与工程实践

NsEmuTools&#xff1a;开源模拟器管理工具的质量保障与工程实践 【免费下载链接】ns-emu-tools 一个用于安装/更新 NS 模拟器的工具 项目地址: https://gitcode.com/gh_mirrors/ns/ns-emu-tools 在开源项目的生命周期中&#xff0c;如何在快速迭代与代码质量之间找到平…...

银河麒麟服务器系统4.02-sp2实战:飞腾架构下的虚拟机优化与远程管理

1. 银河麒麟服务器系统与飞腾架构概述 银河麒麟服务器系统4.02-sp2是国内自主研发的企业级操作系统&#xff0c;特别针对飞腾处理器架构进行了深度优化。飞腾作为国产CPU的代表之一&#xff0c;采用ARMv8指令集&#xff0c;在政务、金融等关键领域广泛应用。这套组合最大的特点…...

Anomalib Padim模型训练完整踩坑记录:从环境配置、自制数据集准备到ONNX导出一步到位

Anomalib Padim模型实战&#xff1a;工业缺陷检测从零到ONNX部署全指南 工业质检领域正经历一场从传统人工检测到智能算法驱动的变革。想象一下&#xff0c;当生产线上的金属部件以每分钟数十个的速度通过摄像头时&#xff0c;如何确保每个产品表面没有细微划痕、凹陷或腐蚀&am…...

3大核心能力重新定义macOS炉石传说对战体验:HSTracker全方位辅助系统解析

3大核心能力重新定义macOS炉石传说对战体验&#xff1a;HSTracker全方位辅助系统解析 【免费下载链接】HSTracker A deck tracker and deck manager for Hearthstone on macOS 项目地址: https://gitcode.com/gh_mirrors/hs/HSTracker HSTracker是一款专为macOS平台设计…...