文档段落太多

问题描述 投票:0回答:2

我正在编写一个 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 的热情并没有让我真正放手。

lotus-notes
2个回答
1
投票

(Notes 确实有这种怪癖,未记录的东西,错误的错误消息等等)

也许尝试每 N 行插入

.addPageBreak()
或强制使用
.addNewLine(1,true)
一个段落,以防消息错误并且问题是您只有一个段落。


0
投票

如果你“只有一个段落”,那么你就遇到了记录的“注释限制”

富文本字段中单个段落的最大大小:64KB

在这种情况下,PeterMmm建议的

.addNewLine(1,true)
就是解决方案。

否则,当 Notes 客户端在打开包含大量正文字段的非常大的文档时内存不足时,会出现“文档段落过多”的情况。

notes.ini 参数 EDITOR_MEMORY_SCALE 可以指定 20 到 200 之间的值(例如 EDITOR_MEMORY_SCALE=200)。设置为 200 将使用每个文档两倍的内存量,并且会降低性能,但允许您打开返回“文档段落过多...”错误的文档。

来源:

© www.soinside.com 2019 - 2024. All rights reserved.