在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

对于没有宏的解决方案,您可以修改段落样式,使用右对齐制表位和填充字符。为此,您应该首先创建一个新的段落样式:

  1. 将光标置于要修改的行之一;
  2. 打开菜单 Format -> Styles and Formatting,或按 F11;
  3. 点击最右边的按钮(小箭头向下),select New Style from Selection:

  4. 为样式输入一个名称,使管理样式更容易。

  5. 现在,在段落样式列表中,右键单击新样式,然后从上下文菜单中选择 select Modify...
  6. Tabs 选项卡上,使用以下设置创建一个新的制表位:

  7. 注意设置填充字符(默认:空)。该位置取决于页边距设置和纸张尺寸;使用 A4 纸(21 厘米宽)和 2 厘米边框,右边距为 17 厘米。

  8. 现在,将光标放在应该用 = 填充的行的末尾,确保正确的段落样式处于活动状态,然后点击 Tab 键插入制表符。 LO Writer 会用填充字符集填充行到行尾:

如果您需要为多个段落添加制表位,您可以执行search/replace,将段落标记替换为tabstop/paragraph 标记的组合。您还可以使用 search/replace 来应用新的段落样式。

已使用 LibreOffice Writer 进行测试,但应该也适用于 OpenOffice。