LibreOffice 宏
LibreOffice 宏
API 网站:https://api.libreoffice.org/
教程网站:https://www.pitonyak.org/book/
下面的宏可以在 LibreOffice 中实现文档着色:
' 功能:给选中的文本统一字体,添加灰色段落背景
Sub A01_CodeBlockdim document as objectdim dispatcher as objectdocument = ThisComponent.CurrentController.Framedispatcher = createUnoService("com.sun.star.frame.DispatchHelper")rem ----------------------------------------------------------------------dim args0(0) as new com.sun.star.beans.PropertyValuedim args1(1) as new com.sun.star.beans.PropertyValuedim args2(2) as new com.sun.star.beans.PropertyValuedim args4(4) as new com.sun.star.beans.PropertyValuerem ----------------------------------------------------------------------args4(0).Name = "CharFontName.StyleName"args4(0).Value = ""args4(1).Name = "CharFontName.Pitch"args4(1).Value = 2args4(2).Name = "CharFontName.CharSet"args4(2).Value = 0args4(3).Name = "CharFontName.Family"args4(3).Value = 0args4(4).Name = "CharFontName.FamilyName"args4(4).Value = "AR PL UKai CN"dispatcher.executeDispatch(document, ".uno:CharFontName", "", 0, args4())rem ----------------------------------------------------------------------args2(0).Name = "FontHeight.Height"args2(0).Value = 12args2(1).Name = "FontHeight.Prop"args2(1).Value = 100args2(2).Name = "FontHeight.Diff"args2(2).Value = 0dispatcher.executeDispatch(document, ".uno:FontHeight", "", 0, args2())rem ----------------------------------------------------------------------args0(0).Name = "BackColor"args0(0).Value = -1dispatcher.executeDispatch(document, ".uno:BackColor", "", 0, args0())rem ----------------------------------------------------------------------args0(0).Name = "BackgroundColor"args0(0).Value = &HEEEEEEdispatcher.executeDispatch(document, ".uno:BackgroundColor", "", 0, args0())rem ----------------------------------------------------------------------args4(0).Name = "TopBottomMargin.TopMargin"args4(0).Value = 0args4(1).Name = "TopBottomMargin.BottomMargin"args4(1).Value = 0args4(2).Name = "TopBottomMargin.ContextMargin"args4(2).Value = falseargs4(3).Name = "TopBottomMargin.TopRelMargin"args4(3).Value = 100args4(4).Name = "TopBottomMargin.BottomRelMargin"args4(4).Value = 100dispatcher.executeDispatch(document, ".uno:TopBottomMargin", "", 0, args4())rem ----------------------------------------------------------------------args1(0).Name = "LineSpacing.Mode"args1(0).Value = 0args1(1).Name = "LineSpacing.Height"args1(1).Value = 100dispatcher.executeDispatch(document, ".uno:LineSpacing", "", 0, args1())
End Sub' 功能:给文档中的拼音 [*] 和注释 {*} 添加颜色。
' 可用类似的方法实现代码着色。
Sub A02_PinYinHighlightDim aReplaceArgs(0) as new com.sun.star.beans.PropertyValue' 恢复全文默认颜色aReplaceArgs(0).Name = "CharColor"aReplaceArgs(0).Value = &H000000ReplaceString(ThisComponent, ".+", "$0", aReplaceArgs)' 中括号中的拼音设置为蓝色aReplaceArgs(0).Name = "CharColor"aReplaceArgs(0).Value = &H3465A4ReplaceString(ThisComponent, "\[.+?\]", "$0", aReplaceArgs)' 花括号中的注释设置为红色aReplaceArgs(0).Name = "CharColor"aReplaceArgs(0).Value = &HFF0000ReplaceString(ThisComponent, "\{.+?\}", "$0", aReplaceArgs)
End Sub' 功能:删除行尾空白
Sub A03_ClearTailingSpaceReplaceString(ThisComponent, "[ \t]+$", "", Nothing)
End Sub' 功能:Tab 转空格
Sub A04_Tab2SpaceReplaceString(ThisComponent, "\t", " ", Nothing)
End Sub' 功能:在 oContainer 中搜索 sSearchString,并替换为 sReplaceString,
' 同时指定替换时的属性 aReplaceArgs,支持正则表达式
' 示例:将文档中的 a 替换为红色加粗的 b
' ------------------------------
' 创建一个属性数组,包含两个元素
' Dim aReplaceArgs(1) as new com.sun.star.beans.PropertyValue
' 属性名为 CharColor,属性值为 &HFF0000
' aReplaceArgs(0).Name = "CharColor"
' aReplaceArgs(0).Value = &HFF0000
' 属性名为 CharWeight,属性值为 BOLD,即 150.0
' aReplaceArgs(1).Name = "CharWeight"
' aReplaceArgs(1).Value = com.sun.star.awt.FontWeight.BOLD
' 执行替换操作,替换范围为整个文档
' ReplaceString(ThisComponent, "a", "b", aReplaceArgs)
' ------------------------------
Sub ReplaceString(oContainer as Object, sSearchString, sReplaceString as String, aReplaceArgs as Object)oReplaceDesc = oContainer.createReplaceDescriptor()oReplaceDesc.SearchCaseSensitive = TrueoReplaceDesc.SearchRegularExpression = TrueoReplaceDesc.Searchstring = sSearchStringoReplaceDesc.ReplaceString = sReplaceStringif not (aReplaceArgs is Nothing) thenoReplaceDesc.setReplaceAttributes(aReplaceArgs)end ifoReplCount = oContainer.ReplaceAll(oReplaceDesc)
End Sub' 功能:列出对象拥有的所有属性
' 示例:列出 ThisComponent 的所有属性
' ------------------------------
' ListProperties(ThisComponent)
' ------------------------------
' 示例:列出光标处文本的所有属性
' ------------------------------
' oCursor = ThisComponent.currentController.getViewCursor()
' ListProperties(oCursor)
' ------------------------------
Sub ListProperties(oObject as Object)aProperties = oObject.getPropertySetInfo().getProperties()Dim sResult as StringFor Index = lbound(aProperties) to ubound(aProperties)sResult = sResult + Chr(10) + oObject.getPropertySetInfo().getProperties()(Index).NameNextmsgbox(sResult)
End Sub
LibreOffice 宏相关推荐
- libreoffice python_如何在LibreOffice中运行python宏?
问题描述 当我去工具 – >宏 – >组织宏 – > Python我得到这个对话框: 无法创建新的Python宏. 显然LibreOffice没有Python编辑器,因此我必须在其他 ...
- 字扩展,位扩展,和字位扩展_6个有用的LibreOffice扩展
字扩展,位扩展,和字位扩展 LibreOffice是周围最好的免费办公套件,因此,所有主要的Linux发行版都采用了LibreOffice. 尽管LibreOffice已经包含了功能,但是可以使用称为 ...
- LibreOffice 中的六大实用扩展组件
LibreOffice 中的六大实用扩展组件 图片来源:Opensource.com LibreOffice 是最好的自由办公套件,并在所有的主要 Linux 发行版中得到应用.尽管 LibreOff ...
- 在LibreOffice 中启用录制宏的功能
LibreOffice 提供一些VBA的支持.但是默认情况下,并没有录制宏的功能.这对于习惯了MS Office的童鞋们是一件很不爽的事情. 今天终于找到了打开这个功能的方法(LibreOffice ...
- libreoffice python_如何从python脚本调用现有LibreOffice python宏
最后,我有一个可行的解决方案.叮!东!在#!/usr/bin/python3 # -*- coding: utf-8 -*- ## # a python script to run a libreof ...
- libreoffice python_从python运行Libreoffice BASIC宏
我的首选方法是将python脚本放在LibreOffice user directory的Scripts/python子文件夹中.然后在底部添加此函数:def call_basic_macro(): ...
- LibreOffice、OpenOffice 漏洞可导致黑客欺骗已签名文档
聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 LibreOffice 和 OpenOffice 推出更新,修复了一个漏洞,它可导致攻击者操纵看似由可信来源签名的文档. 尽管该漏洞被评级为中危 ...
- excel启用宏在哪里_Excel 2010在不启用的情况下运行宏
excel启用宏在哪里 In the old days, if you opened a file that contained macros, a warning message popped up ...
- 试用LibreOffice对VBA的支持
安装了Win7后,要打个表格又要用到Office,没有装MS Office,把Office 2007装上试用,不习惯.WPS2005以后虽然不错,但那个自动后台占用网络资源感觉不好.想到以后要将公司软 ...
- Java开发中OnlyOffice、OpenOffice和LibreOffice怎么选?
我把官网贴在下面如果大家有好的使用方法可以分享下. onlyoffice官网:https://www.onlyoffice.com/ Api官方地址(英文):https://api.onlyoffic ...
最新文章
- 浅谈SD-WAN未来的发展方向
- Python3经典100道练习题003
- java asm tree_使用ASM 4处理Java类文件–第二部分:Tree API
- 在页游中LUA的应用(1)
- Azure运维系列 4:安装和使用Azure PowerShell管理云
- LeetCode 1561. 你可以获得的最大硬币数目
- 在未来人类在计算机行业中扮演什么角色,刘慈欣:未来人类可能生活在计算机里...
- Linux查看非root流程执行
- Acer4552G双硬盘
- 环洋市场调研-2021年全球Camlock联轴器行业调研及趋势分析报告
- 神经网络与误差反向传播算法
- (13)TranslateMessage函数
- warning: waiting for transaction lock on /var/lib/rpm/.rpm.lock
- 论文《Avoiding Inference Heuristics in Few-shot Prompt-based Finetuning》学习笔记
- 比较 React Native 与 Vue 和 Capacitor
- MMR: 控制推荐多样性算法
- 谷歌、亚马逊、IBM和微软的云计算平台
- 高中数学40分怎么办_高中数学成绩一直在40分左右,怎样提升?高中数学补习怎么补?...
- 宏观经济研究:全国各省、地级市-社会融资规模增量数据(包含总额及8类明细)2013-2021年
- html 点击下载图片