gpt4 book ai didi

java - 在 Word 中配置内容控件以添加新行

转载 作者:行者123 更新时间:2023-12-01 11:51:15 25 4
gpt4 key购买 nike

我在 Word 模板中使用内容控件,以编程方式向其中添加文本(使用 java)。这很好用。现在我想在文本中的每个新句子处插入一个新行。有没有办法配置内容控件以便它自动执行此操作?

最佳答案

恐怕您无法配置内容控件来自动执行此操作。

但是,如果您通过 Word 对象模型填充内容控件,则可以简单地使用富文本内容控件或纯文本内容控件,后者带有“允许回车符(多个段落)”选项(MultiLine在对象模型中)激活,并用包含换行符的文本填充它。

为了进行快速测试,我已将此类纯文本内容控件添加到空文档中并使用以下 VBA 代码:

Sub FillContentControl()
ContentControls(1).Range.Text = "Sentence One." & vbNewLine & "Sentence Two."""
End Sub

在我的示例中,这会产生以下输出:

Sentence One.
Sententce Two.

您当然应该在 Java 代码中添加换行符。您只需要检测句子的结尾即可。

如果,正如您对基于 docx4j 的解决方案的请求所表明的那样,您不通过 Word 填写内容控件,而是直接填写到 docx 中,我可以考虑另一种涉及 VBA 宏的解决方法(我通常不推荐) :您可以为 Document.Open 事件添加事件处理程序,以更新文档中所有标记的内容控件。它可能看起来像这样:

Private Sub Document_Open()
For Each ContentControl In ThisDocument.ContentControls
If ContentControl.Tag = "TODO_Add_Linebreaks" Then
ContentControl.Range.Text = Replace(ContentControl.Range.Text, ". ", "." & vbNewLine)
ContentControl.Tag = ""
End If
Next
End Sub

第二个解决方案要求您使用标签“TODO_Add_Linebreaks”(或您喜欢的任何指示)添加内容控件,并使文档启用宏。

关于java - 在 Word 中配置内容控件以添加新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28807496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com