段落中的空格导致意外换行

我有一段文本如下:
aaaaaaaaaaaaaaaaaaaaa 啊啊啊啊啊啊啊啊啊啊啊啊 aaaaa

其中有两个空格在文本段落中间,它们在表格中时都可能会导致表格中内容自动换行

@sp.work

请您提供更多信息,例如您使用的代码示例或具体的操作步骤,以便我们更好地理解您的问题。

@sp.work 您能否在此处附上您的输入、输出和预期输出文档以及可让我们重现问题的代码?我们将检查该问题并为您提供更多信息。

类似上图,换行位置实际是有空格的,如果我在后面一个a 和 啊之间加入空格,会在这里换行

@sp.work 您能否提供以下信息?

  1. 您的输入文档。
  2. 您的当前输出
  3. 您的预期输出
  4. 核心以重现问题。

数据是通过api生成的,没有输入源

期望效果,类似上面图中的word中的效果,无需额外换行 正常展示空格即可

@sp.work 此行为符合预期。MS Word 应用的换行规则不受 Aspose.Words 控制。您可以尝试使用不间断空格代替空格
https://reference.aspose.com/words/java/com.aspose.words/controlchar/#NON-BREAKING-SPACE

感谢,使用不间断空格确实能达到预期效果;
但是还是想了解普通空格以及不间断空格在aspose中做导出word/pdf/html大概会有哪些差异;

当我使用了减号时,依旧会有预期之外的换行

@sp.work 正如我所提到的,这是预期的结果。MS Word 在空格、连字符和其他标点符号处换行。如果在 MS Word 中创建文档,您将获得相同的结果。

那我需要怎么处理减号,已达到预期效果呢;controlchar中是否也有类似的不间断字符;另外具体哪些字符会需要替换为不间断的呢?

@sp.work 您可以尝试使用不间断连字符(U+2011):

builder.write("non\u2011breaking");

感谢,使用\u2011是可行的方案;Aspose中是否有类似的工具类可以将间断字符转为不间断字符的么;或者对应的字符清单;

@sp.work 您可以使用 Range.replace 方法将文档中的连字符替换为不间断的连字符。

您好,替换操作我可以在写入之前处理,我需要知道有哪些字符可以/需要转为不间断字符

@sp.work 恐怕没有这样的符号地图。

非常感谢您的回复,祝您工作愉快;

1 Like