在ODT中使用宏完成带有字符的段落
Completing Paragraph with character using macro in ODT
假设你有下一段在open office
公共契约编号公共契约编号DDSDSSDDS/2015 DSDSSDDS特殊权力的公共契约,授予 HEZ GONZALES 以支持 CARLOS ESANCHEZ YADOS SANCHEZ。
如何使用宏自动完成段落,直到使用字符 ==== 换行之前?。换句话说,该宏的输出将是:
公共契约编号公共契约编号DDSDSSDDS/2015 DSDSSDDS特殊权力的公共契约,授予 HEZ GONZALES 以支持 CARLOS ESANCHEZ YADOS SANCHEZ。 =============================
这里是 OpenOffice Basic 代码,可以满足您的需求:
Sub addEquals
oDoc = ThisComponent
oVC = oDoc.getCurrentController.getViewCursor
linenum_original = getLinenum(oVC)
For insertEqual = 1 to 255
oVC.collapseToEnd
oVC.gotoEndofLine(False)
oVC.getText().insertString(oVC, "=", False)
If getLinenum(oVC) <> linenum_original Then
' Remove the last =
oVC.gotoEndofLine(False)
oVC.goLeft(1, True)
oVC.setString("")
oVC.goRight(0, False)
oVC.collapseToEnd
Exit For
End If
Next insertEqual
End Sub
Function getLinenum(oVC)
nY = 0 'How many lines from top of page
nPage = oVC.getPage
while oVC.goUp(1, False) and oVC.getPage = nPage
nY = nY + 1
wend
oVC.goDown(nY, False)
getLinenum = nY
End Function
将光标置于段落末尾(在您的示例中为"SANCHEZ"),然后运行此宏。
它的工作方式是一次添加一个“=”,然后检查它是否还在同一行。如果在另一条线上,则停止。
它经常闪烁,因此您可能需要添加代码以在 运行ning 期间锁定控制器。参见 https://wiki.openoffice.org/wiki/Writer/API/View_cursor。
对于没有宏的解决方案,您可以修改段落样式,使用右对齐制表位和填充字符。为此,您应该首先创建一个新的段落样式:
- 将光标置于要修改的行之一;
- 打开菜单
Format
-> Styles and Formatting
,或按 F11;
点击最右边的按钮(小箭头向下),select New Style from Selection
:
为样式输入一个名称,使管理样式更容易。
- 现在,在段落样式列表中,右键单击新样式,然后从上下文菜单中选择 select
Modify...
;
在 Tabs
选项卡上,使用以下设置创建一个新的制表位:
注意设置填充字符(默认:空)。该位置取决于页边距设置和纸张尺寸;使用 A4 纸(21 厘米宽)和 2 厘米边框,右边距为 17 厘米。
现在,将光标放在应该用 =
填充的行的末尾,确保正确的段落样式处于活动状态,然后点击 Tab 键插入制表符。 LO Writer 会用填充字符集填充行到行尾:
如果您需要为多个段落添加制表位,您可以执行search/replace,将段落标记替换为tabstop/paragraph 标记的组合。您还可以使用 search/replace 来应用新的段落样式。
已使用 LibreOffice Writer 进行测试,但应该也适用于 OpenOffice。
假设你有下一段在open office
公共契约编号公共契约编号DDSDSSDDS/2015 DSDSSDDS特殊权力的公共契约,授予 HEZ GONZALES 以支持 CARLOS ESANCHEZ YADOS SANCHEZ。
如何使用宏自动完成段落,直到使用字符 ==== 换行之前?。换句话说,该宏的输出将是:
公共契约编号公共契约编号DDSDSSDDS/2015 DSDSSDDS特殊权力的公共契约,授予 HEZ GONZALES 以支持 CARLOS ESANCHEZ YADOS SANCHEZ。 =============================
这里是 OpenOffice Basic 代码,可以满足您的需求:
Sub addEquals
oDoc = ThisComponent
oVC = oDoc.getCurrentController.getViewCursor
linenum_original = getLinenum(oVC)
For insertEqual = 1 to 255
oVC.collapseToEnd
oVC.gotoEndofLine(False)
oVC.getText().insertString(oVC, "=", False)
If getLinenum(oVC) <> linenum_original Then
' Remove the last =
oVC.gotoEndofLine(False)
oVC.goLeft(1, True)
oVC.setString("")
oVC.goRight(0, False)
oVC.collapseToEnd
Exit For
End If
Next insertEqual
End Sub
Function getLinenum(oVC)
nY = 0 'How many lines from top of page
nPage = oVC.getPage
while oVC.goUp(1, False) and oVC.getPage = nPage
nY = nY + 1
wend
oVC.goDown(nY, False)
getLinenum = nY
End Function
将光标置于段落末尾(在您的示例中为"SANCHEZ"),然后运行此宏。
它的工作方式是一次添加一个“=”,然后检查它是否还在同一行。如果在另一条线上,则停止。
它经常闪烁,因此您可能需要添加代码以在 运行ning 期间锁定控制器。参见 https://wiki.openoffice.org/wiki/Writer/API/View_cursor。
对于没有宏的解决方案,您可以修改段落样式,使用右对齐制表位和填充字符。为此,您应该首先创建一个新的段落样式:
- 将光标置于要修改的行之一;
- 打开菜单
Format
->Styles and Formatting
,或按 F11; 点击最右边的按钮(小箭头向下),select
New Style from Selection
:为样式输入一个名称,使管理样式更容易。
- 现在,在段落样式列表中,右键单击新样式,然后从上下文菜单中选择 select
Modify...
; 在
Tabs
选项卡上,使用以下设置创建一个新的制表位:注意设置填充字符(默认:空)。该位置取决于页边距设置和纸张尺寸;使用 A4 纸(21 厘米宽)和 2 厘米边框,右边距为 17 厘米。
现在,将光标放在应该用
=
填充的行的末尾,确保正确的段落样式处于活动状态,然后点击 Tab 键插入制表符。 LO Writer 会用填充字符集填充行到行尾:
如果您需要为多个段落添加制表位,您可以执行search/replace,将段落标记替换为tabstop/paragraph 标记的组合。您还可以使用 search/replace 来应用新的段落样式。
已使用 LibreOffice Writer 进行测试,但应该也适用于 OpenOffice。