【问题标题】:Programmatically highlight text in MS Word using java使用 java 以编程方式突出显示 MS Word 中的文本
【发布时间】:2012-05-12 22:14:36
【问题描述】:

谁能告诉我是否可以在 word 文档(基本上是 DOCX)中突出显示某些单词(由页码和行号提供)?我的主要选择是使用Java。如果有任何针对此问题的 .Net 解决方案,请告诉我。

谢谢。

【问题讨论】:

  • .docx 基本上只是 zip 文件中的一个 xml 文件,因此如果没有库可以为您解析,您可以打开它并手动解析 XML。
  • 是的,我已经这样做了。但是,当我打开文档的 XML 时,我没有找到任何 XML 标记来访问特定页面或特定行号。我的意图是转到特定页面中的特定行号,然后突出显示该行的内容。
  • 请找到stackoverflow.com/questions/35419619/…提供的stcakoverflow答案

标签: java .net ms-word highlighting


【解决方案1】:

我没有在 java 中找到,但在 .NET 中找到了

object missObj = Missing.Value;
            object path = @"D:\mydoc.docx";
            Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();
            Microsoft.Office.Interop.Word.Document doc = app.Documents.Open(ref path, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj);
            foreach (Microsoft.Office.Interop.Word.Range range in doc.Words)
            {
                if (range.Text.Trim() == "the text")
                {
                    range.HighlightColorIndex = Microsoft.Office.Interop.Word.WdColorIndex.wdDarkYellow;
                    range.Font.ColorIndex = Microsoft.Office.Interop.Word.WdColorIndex.wdWhite;
                }
            }

来源:http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/9fba8427-8b3c-44f2-b19f-92eb5108693b/

【讨论】:

  • 感谢您的回复。我会检查一下然后回复你。
  • 我尝试了示例代码,它似乎只突出了一个单词,而不是一个字符串。假设我将“文本”提供为 ,它不会突出显示文档中的字符串。但是,如果我提供“文本”,它会突出显示。还有什么事情要做吗?
【解决方案2】:

是的,这在 Java 中是可能的,但是您可能需要通过第三个库来实现它,Apache POI 是一个不错的选择,它是 Microsoft 文档的 Java API,提供了用于操作 DOC 或 DOCX fromat 的几乎所有功能和特性文件。

http://poi.apache.org/

您的意思是“突出显示”是段落背景颜色和突出显示文本颜色?还是别的什么?

【讨论】:

  • 我之前对Apache POI做了一些研究。但是,我对如何突出显示没有任何线索。在高层次上,我想做以下事情 - 1)转到指定的页码,2)转到指定的行号,3)突出显示该行。 POI可以吗?如果是,你能提供一些虚拟代码吗?
  • 我想突出显示特定页面中的一行(更准确地说是行中的单词)。
【解决方案3】:

是的,通过使用 Apache POI,您可以阅读 Microsoft Word 文档,并可以对该文档进行操作,例如突出显示文本等。

【讨论】:

    猜你喜欢
    • 2014-09-02
    • 1970-01-01
    • 2016-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多