在 libreoffice writer 中获取文档内容并保留连字号的宏

Macro to get document contents preserving hyphenation in libreoffice writer

我需要访问 LibreOffice 文档中的文本。 该文件有自动断字, 我需要知道屏幕上显示的连字符位置。

以下代码 returns 没有自动连字符的明文:

XSCRIPTCONTEXT.getDocument().getText().getString()

这是我阅读的文档: https://wiki.openoffice.org/wiki/Documentation/DevGuide/Text/Working_with_Text_Documents

我还查看了这个扩展:https://github.com/voikko/libreoffice-voikko

我也在 pyCharm 远程调试器下 运行 Capitalise.py example,但找不到任何提示。

LibreOffice 的文本中实际上不会出现自动连字符。相反,它们会根据需要显示。导出 PDF 等格式或打印文档时,输出中会显示连字符。

Hyphenator service 在宏中相当容易使用,并允许根据可能的断字位置拆分单词。

要真正确定连字符在屏幕上的显示位置,以下方法可能有效:

  1. 用word光标遍历文档。 Andrew Pitonyak's Macro Document 第 7.3.8.5 节在 Basic 中给出了这方面的示例。
  2. 将视图光标移动到每个单词的开头并检查 Y 位置。例如,如果 self.oVC 是视图光标,则检查 self.oVC.getPosition().Y.
  3. 的值
  4. 把光标移动到词尾,看看Y位置有没有变化

如果是这样,那么大概是这个词被连字符了。