我正在编写一个 Java 代理,它在富文本字段中输出一些文本:
StringBuffer sb = new StringBuffer();
for (String line : datalines) {
if (sb.length() + line.length()< 64000){
sb.append(line);
sb.append(' ');
} else {
// flush buffer
rt.appendText(sb.toString());
rt.addNewLine();
sb = new StringBuffer();
}
}
// write the rest of the buffer
rt.appendText(sb.toString());
rt.addNewLine();
但是,如果文本很长,最终我无法在 UI 中打开文档。带有一条消息:“文档段落太多 - 必须将其拆分为多个文档”。
我知道“段落太多”是一个老问题。我在旧论坛上看到了很多痛苦和一些无用的建议。但多少才算是“太多”呢?我刚刚算了一下,我写了533段。是不是太多了?我同意段落大小一点也不差,总大小约为 34 Mb。但就尺寸而言,它对于 RT 来说微不足道。我尝试过以 30K 大小剪切段落 - 同样的问题。
在 IBM 网站上发现了关于 8.5.1 上此问题的有趣文档: http://www-01.ibm.com/support/docview.wss?uid=swg1LO53879 声称 APAR“如果下一步则修复为已关闭” ”。是的,我正在运行 9.0.1,以防他们的意思是“在下一个版本中修复”或类似的内容。
对于多少算太多,或者我们真正达到的极限是什么,以及至少如何估计——当我们接近“太多”时,有什么想法吗?以及策略是什么。除了少写。
坦白说,在这种情况下我可以只写 N 个非摘要文本字段,或者使用附件,但我对 RT 的热情并没有让我真正放手。
(Notes 确实有这种怪癖,未记录的东西,错误的错误消息等等)
也许尝试每 N 行插入
.addPageBreak()
或强制使用 .addNewLine(1,true)
一个段落,以防消息错误并且问题是您只有一个段落。
如果你“只有一个段落”,那么你就遇到了记录的“注释限制”:
富文本字段中单个段落的最大大小:64KB
在这种情况下,PeterMmm建议的
.addNewLine(1,true)
就是解决方案。
否则,当 Notes 客户端在打开包含大量正文字段的非常大的文档时内存不足时,会出现“文档段落过多”的情况。
notes.ini 参数 EDITOR_MEMORY_SCALE 可以指定 20 到 200 之间的值(例如 EDITOR_MEMORY_SCALE=200)。设置为 200 将使用每个文档两倍的内存量,并且会降低性能,但允许您打开返回“文档段落过多...”错误的文档。
来源: