您可以在writer中打印拼写检查生成的波浪线吗?

2023-12-12

根据 google 小组的说法,该宏可用于在 MS Office 中打印拼写错误的单词。

https://groups.google.com/g/microsoft.public.word.spelling.grammar/c/OiFYPkLAbeU

libre-office writer 中有类似的选项吗?


以下子例程复制了 Google 组中的代码的功能。它比 MS 版本更详细,但对于 LibreOffice / OpenOffice 来说这是可以预料的。它只进行拼写检查,而不进行绿色语法检查,Google 组中的 MS 版本也是如此。

Sub UnderlineMisspelledWords

    ' From OOME Listing 315 Page 336
    GlobalScope.BasicLibraries.loadLibrary( "Tools" )
    Dim sLocale As String
    sLocale = GetRegistryKeyContent("org.openoffice.Setup/L10N", FALSE).getByName("ooLocale")

    ' ooLocale appears to return a string that consists of the language and country
    ' seperated by a dash, e.g. en-GB
    Dim nDash As Integer
    nDash = InStr(sLocale, "-")

    Dim aLocale As New com.sun.star.lang.Locale
    aLocale.Language = Left(sLocale, nDash - 1)
    aLocale.Country = Right(sLocale, Len(sLocale) -nDash )

    Dim oSpeller As Variant
    oSpeller = createUnoService("com.sun.star.linguistic2.SpellChecker")

    Dim emptyArgs() as new com.sun.star.beans.PropertyValue

    Dim oCursor As Object
    oCursor = ThisComponent.getText.createTextCursor()
    oCursor.gotoStart(False)
    oCursor.collapseToStart()

    Dim s as String, bTest As Boolean
    Do 
        oCursor.gotoEndOfWord(True)
        s = oCursor.getString()
        bTest = oSpeller.isValid(s, aLocale, emptyArgs())

        If Not bTest Then    
            With oCursor
                .CharUnderlineHasColor = True
                .CharUnderlineColor = RGB(255, 0,0)
                .CharUnderline = com.sun.star.awt.FontUnderline.WAVE
                ' Possible alternatives include SMALLWAVE, DOUBLEWAVE and BOLDWAVE
            End With
        End If    
    Loop While oCursor.gotoNextWord(False)

End Sub    

这会将字体的实际格式更改为具有红色波浪下划线,它将像任何其他格式一样打印出来。如果文档中任何拼写错误的单词已经带有某种下划线,那么该下划线将会丢失。

打印后您可能需要删除下划线。以下 Sub 仅在其样式与第一个例程添加的行的样式完全匹配的情况下删除下划线。

Sub RemoveUnderlining

    Dim oCursor As Object
    oCursor = ThisComponent.getText.createTextCursor()
    oCursor.gotoStart(False)
    oCursor.collapseToStart()

    Dim s as String, bTest As Boolean
    Do 
    
        oCursor.gotoEndOfWord(True) 
        
        Dim bTest1 As Boolean        
        bTest1 = False
        If oCursor.CharUnderlineHasColor = True Then
            bTest1 = True
        End If
        
        Dim bTest2 As Boolean  
        bTest2 = False
        If oCursor.CharUnderlineColor = RGB(255, 0,0) Then
            bTest2 = True
        End If
        
        Dim bTest3 As Boolean  
        bTest3 = False
        If oCursor.CharUnderline = com.sun.star.awt.FontUnderline.WAVE Then
            bTest3 = True
        End If
        
        If bTest1 And bTest2 And bTest3 Then
            With oCursor
                .CharUnderlineHasColor = False
                .CharUnderline = com.sun.star.awt.FontUnderline.NONE
            End With
        End If
    Loop While oCursor.gotoNextWord(False)

End Sub

这不会恢复任何被红色波浪线取代的原始下划线。去除波浪线以恢复这些波浪线的其他方法是:

  1. 紧迫undo(Ctrl Z) 但您需要对文档中的每个单词执行一次此操作,这可能有点麻烦。

  2. 运行子程序UnderlineMisspelledWords打印文档的临时副本,然后在打印后将其丢弃。

我希望这就是您正在寻找的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

您可以在writer中打印拼写检查生成的波浪线吗? 的相关文章

  • Deepin debian安装Libreoffice

    Libreoffice LibreOffice 是一款功能强大的办公软件 xff0c 默认使用开放文档格式 OpenDocument Format ODF 并支持 docx xlsx pptx 等其他格式 它包含了 Writer Calc
  • 解决libreoffice无法输入中文的问题

    灵感来源于解决wps不能输入中文的方法 xff0c 我个人认为不能输入中文的原因是libreoffice没有调用fcitx 首先确认 xff1a 你已经安装好了fcitx和输入法 xff0c 且能在浏览器或其他地方使用 编辑 usr bin
  • 如何通过 PPA 在 Ubuntu 18.04 和 16.04 上安装 Libreoffice 6.2

    LibreOffice 6 2 已发布并可在官方向后移植 PPA用于 Ubuntu 系统上的安装 它是一款免费的办公套件应用程序 与以前的版本相比有许多增强功能 它包含了许多有用的功能 使办公室管理变得非常容易 它是专门针对 Linux 桌
  • java使用libreOffice预览word,ppt,txt等文档

    首先电脑上需要下载libreOffice 中文官网下载地址 https zh cn libreoffice org download libreoffice 安装过程较为简单 安装完需要重启完成配置 不要安装在中文目录下 验证libreOf
  • 无法以 Web 用户身份运行 oowriter

    我的笔记本电脑上设置了一个网络服务器 我正在构建一个通过本地网络访问的网络应用程序 我有一个 php 文件 其中包含以下几行 command usr bin oowriter invisible convert to pdf var www
  • 在 LibreOffice 中更改单元格背景颜色

    我使用的是 LibreOffice 3 5 4 2 我想根据各种条件更改单元格的背景颜色 作为一个最小的例子 我定义了以下宏 函数 function bgcolor Dim Doc As Object Dim Sheet As Object
  • php shell命令错误GLIBCXX_3.4.9未找到

    我试图从 php 执行 shell 命令将文件转换为 pdf 但出现此错误 有人可以详细解释我如何修复它吗 我不太擅长linux 而且 如果我直接通过终端执行命令 一切都会正常 usr lib libreoffice program oos
  • 创建一个基于 libreoffice 文本的数据源并使用 java 设置设置

    我需要在 Java 中创建一个 LibreOffice 基于文本的数据源 我的需求是向用户提供一个包含标题行和 n 个值行的 csv 文件 此 csv 文件是执行邮件合并作业的数据源 如果我使用 LibreOffice 向导手动创建数据源来
  • 具有多个条件的 COUNTIF

    您能告诉我如何在多个条件下使用 COUNTIF 吗 我的提案 左 显示了一项标准 不同区域 的公式 但是 我有兴趣计算每个不同月份的不同区域 两个标准 右侧 期望的结果 您可以使用COUNTIFS instead 1 COUNTIFS A
  • 从 Python 控制 Libreoffice Impress

    我正在编写一个面向演讲者和会议的应用程序 我用 Python 编写并专注于 Linux 我想知道是否可以在 Linux 下使用 Python 以某种方式控制 LibreOffice Impress 我想从我的 Python 应用程序启动一个
  • LibreOffice / OpenOffice Calc:VBscript,将 XLS 工作表导出为 CSV

    我现在正在尝试编写一个脚本一段时间 但似乎其中一部分不起作用 情况 我需要一个 VB 脚本 可以使用任何 Windows XP 或 7 系统上安装的任何 LibreOffice OpenOffice Calc 在我的例子中为 3 5 4 将
  • 如何在Basic中使用LibreOffice功能?

    I ve 在这里问关于这样做的好方法 现在我正在尝试以下代码在这里找到 并得到一些意想不到的错误 我想我没有以正确的方式使用它 任何想法 Sub Main Dim aResult Dim aFunc Dim oRange aFunc Get
  • 您可以在writer中打印拼写检查生成的波浪线吗?

    根据 google 小组的说法 该宏可用于在 MS Office 中打印拼写错误的单词 https groups google com g microsoft public word spelling grammar c OiFYPkLAb
  • LibreOffice 宏总是显示#NULL!重新打开文件后

    我在 LibreOffice Calc 中编写了一个宏 它能够正确运行 但如果我关闭文件并重新打开 它总是显示 NULL 而不是正确的值 我在这里缺少什么 我的宏代码 Rem Attribute VBA ModuleType VBAModu
  • 仅在 Linux 上通过命令行将 xlsx 转换为文本 CSV [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 简单的问题 目前是否可以从命令行调用 LibreOffice 以打开 xlsx 并将其转换 另存为 csv 或者 如果这是不可能的 当前通过命令行执行
  • 如何检查 Star Basic 中损坏的内部链接?

    我正在为 LibreOffice Writer 创建一个基本宏来检查损坏的内部链接 简而言之 生成所有锚点的列表 循环浏览文档 查找内部超链接 如果内部超链接不在锚点列表中 则打开它进行编辑 然后停止 我的代码有一些未解决的问题 withi
  • 在 Docker 上运行 LibreOffice 转换器

    该问题与使用 LibreOffice 无头转换器自动转换上传的文件有关 出现此错误 LibreOffice 7 fatal error Application cannot be started Ubuntu 版本 21 04 我尝试过的
  • unoconv 将 .xlsx 文件导出为 png 等图像

    我已经安装成功了unoconv在我的 ubuntu 14 04 64 位中 我想将 xlsx 文件的第一张导出为 png 或 jpg 等图像 I tried unoconv l 9998 this is to start the pytho
  • Ubuntu Linux 中从剪贴板复制 R

    我想从 Ubuntu Linux 剪贴板复制到 R Studio 中 我的工作流程包括在 R Studio 和 LibreOffice Calc 之间来回移动 我找到了以下用于写入 Linux X11 剪贴板的代码 但我不知道如何读取它 写
  • Linux 上的 Imagemagick 将 EMF 转换为 PNG

    我尝试在 Red Hat Enterprise Linux Server 5 5 Tikanga 上使用 Imagemagick 将 EMF 格式的图像转换为 PNG 但遇到以下错误 转换 此图像格式 thumbnail emf 没有解码委

随机推荐