Xpages 将MIME转换为RichText

Xpages 将MIME转换为RichText,xpages,lotus-domino,xpages-ssjs,Xpages,Lotus Domino,Xpages Ssjs,我想用SSJS或Java将数据类型为的domino文档字段转换为后端中的数据类型:富文本 我试着和你一起工作 doc.computeWithForm(true, true); doc.save(true, true); 但这段代码没有效果 提示:我可以使用前端中的notes客户端进行此转换(打开并保存文档),而不会出现任何问题 有什么想法吗?提前谢谢 这可能是API中自动MIME到CD转换通常不受欢迎的副作用的一部分。例如,这样的代码会将数据库中第一个文档的Body字段从MIME转换为复合

我想用
SSJS
Java
数据类型为
的domino文档字段转换为
后端中的
数据类型:富文本


我试着和你一起工作

doc.computeWithForm(true, true);
doc.save(true, true);
但这段代码没有效果


提示:我可以使用前端中的notes客户端进行此转换(打开并保存文档),而不会出现任何问题


有什么想法吗?提前谢谢

这可能是API中自动MIME到CD转换通常不受欢迎的副作用的一部分。例如,这样的代码会将数据库中第一个文档的Body字段从MIME转换为复合数据:

boolean convertMime = session.isConvertMime();
session.setConvertMime(true);
Document doc = database.getAllDocuments().getFirstDocument();
RichTextItem rtitem = (RichTextItem)doc.getFirstItem("Body");
rtitem.compact();

doc.save();
session.setConvertMime(convertMime);

通过确保会话正在转换MIME(默认情况下为
true
,但最好保持任何以前存在的值),然后与MIME\u部分项交互,它将为您将其转换为CD。

您可以这样做,这是API中自动MIME到CD转换通常不希望产生的副作用的一部分。例如,这样的代码会将数据库中第一个文档的Body字段从MIME转换为复合数据:

boolean convertMime = session.isConvertMime();
session.setConvertMime(true);
Document doc = database.getAllDocuments().getFirstDocument();
RichTextItem rtitem = (RichTextItem)doc.getFirstItem("Body");
rtitem.compact();

doc.save();
session.setConvertMime(convertMime);

通过确保会话正在转换MIME(默认情况下为
true
,但最好保留任何以前存在的值),然后与MIME\u部分项交互,它将为您将其转换为CD。

OT:为什么有人要将MIME转换为Richtext?我认为这种方式比在MIME中使用会带来更多的麻烦-除了你的应用程序必须在客户端“舒适”地显示它。看看这个:@OliverBusse:我必须处理一个第三方pdf渲染器,它可以更好地与
RichText
而不是
MIME
@KnutHerrmann:谢谢你的回答,我会尝试一下…@KnutHerrmann:我已经在SSJS中重写了代码(),但它对我不起作用:(OT:为什么会有人想将MIME转换为Richtext?我认为这种方式会比在MIME中使用它带来更多麻烦-除了你的应用程序必须“舒适地”显示它之外”在客户端中。看一看:@OliverBusse:我必须处理一个第三方pdf渲染器,它可以更好地使用
RichText
而不是
MIME
。@KnutHerrmann:谢谢你的回答,我会尝试一下…@KnutHerrmann:我已经在SSJS中重写了代码(),但它对我不起作用:(非常感谢您的完美回答!现在它可以工作了:)对于其他遇到相同问题的人,我只想补充一点,通过设置convertMime选项,我们可以使用标准RT字段中的embeddedObjects从MIME字段中获取附加文件:-)@Jesse Gallagher我一直在尝试这个,但是当我得到body字段时,我一直得到一个类强制转换异常:“ClassCastException:org.openntf.domino.impl.Item与org.openntf.domino.RichTextItem不兼容”。这可能是因为去年的更新吗?不应该是-这听起来更像是您正在处理的项目实际上不是富文本项目。我建议检查有问题的文档,或者添加一个测试,如
item foo=doc.getFirstItem(“Body”);if(foo.getType()==item.COMPOSITE){…}
(我忘了它是否使用“COMPOSITE”)好了,但你明白了。)非常感谢你的完美答案!现在它起作用了:)对于其他遇到相同问题的人,我只想补充一点,通过设置convertMime选项,我们设法使用标准RT字段中的嵌入对象从MIME字段中获取附加文件:-)@Jesse Gallagher我一直在尝试,但是,当我得到body字段时,我不断得到一个类强制转换异常:“ClassCastException:org.openntf.domino.impl.Item与org.openntf.domino.RichTextItem不兼容”。这可能是因为去年的更新吗?不应该是-听起来更像是你正在处理的项目实际上不是一个富文本项目。我建议检查有问题的文档,或者添加一个测试,比如
itemfoo=doc.getFirstItem(“Body”);if(foo.getType()==Item.COMPOSITE){…}
(我忘了它在那里是否使用了“COMPOSITE”,但你明白了)。