【问题标题】:LibreOffice Writer: How to Replace Font of Searched TextLibreOffice Writer:如何替换搜索文本的字体
【发布时间】:2016-08-27 17:31:48
【问题描述】:

我有几份.DOC 格式的文档,其中包括英语和梵语(天城文)单词。我正在使用 LibreOffice Writer:

Version: 5.1.4.2
Build ID: 1:5.1.4-0ubuntu1
Locale: en-US (en_GB.UTF-8)

默认字体是Liberation Serif,我喜欢并想继续使用,但有些梵文/天城文单词显示不正确。有些字体确实可以正确显示梵文/天城文单词,例如Akshar Unicode。因此,对于无法正确显示的单词,我将它们的字体更改为Akshar Unicode,方法是突出显示每个不正确的单词,然后将字体从Liberation Serif 更改为Akshar Unicode,这是一种乏味且低效的方法。

有没有更有效的方法来改变某些单词的字体?

这是我目前尝试过的两种方法,这两种方法似乎都无法更改搜索结果的字体或替换文本:

  • 突出显示不正确的单词并按[CTRL] + [H] 以使用Find & Replace 工具。
  • 安装扩展Alternate searching 1.4.1,这是一个类似于Find & Replace的工具,但更复杂。

理想情况下,Find & Replace 工具将能够更改搜索结果的字体或替换文本。

【问题讨论】:

    标签: unicode fonts libreoffice


    【解决方案1】:

    以下宏在文档中的任何位置选择当前选定的单词。然后设置字体。

    Sub ChangeFontOfWords
        document   = ThisComponent.CurrentController.Frame
        dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
        oSels = ThisComponent.getCurrentSelection()
        oSel = oSels.getByIndex(0)
    
        dim args1(1) as new com.sun.star.beans.PropertyValue
        args1(0).Name = "SearchItem.SearchString"
        args1(0).Value = oSel.getText()
        dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())
    
        dim args2(0) as new com.sun.star.beans.PropertyValue
        args2(0).Name = "CharFontName.FamilyName"
        args2(0).Value = "Akshar Unicode"
        dispatcher.executeDispatch(document, ".uno:CharFontName", "", 0, args2())
    End Sub
    

    要使用它,双击一个词来选择它,然后运行宏。为方便起见,请转到 Tools -> Customize 并设置热键或工具栏按钮来运行宏。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-13
      相关资源
      最近更新 更多