【问题标题】:Convert MIME to RichText将 MIME 转换为富文本
【发布时间】:2015-09-25 05:15:10
【问题描述】:

我想用SSJS 或Java 将Data Type: MIME Part 的多米诺文档字段转换为后端 中的Data Type: Rich Text?


我已经尝试过使用

doc.computeWithForm(true, true);
doc.save(true, true);

但是这段代码没有任何作用。


提示:我可以在 frontend 中使用 notes 客户端进行此转换(打开并保存文档),没有任何问题。

有什么想法吗?提前致谢!

【问题讨论】:

  • OT:为什么会有人想将 MIME 转换为 Richtext?我认为这种方式会比在 MIME 中造成更多麻烦 - 除非您的应用程序必须在客户端“舒适地”显示它。
  • @OliverBusse:我必须处理与RichText 配合使用而不是MIME 的第3 方pdf 渲染器。
  • @KnutHerrmann:谢谢你的回答,我会试试...
  • @KnutHerrmann:我已经在 SSJS 中重写了代码 (www-10.lotus.com/ldd/nd85forum.nsf/…),但它对我不起作用:(

标签: xpages lotus-domino xpages-ssjs


【解决方案1】:

作为 API 中自动 MIME 到 CD 转换的通常不受欢迎的副作用的一部分,您可以执行此操作。例如,这样的代码会将 DB 中第一个 doc 的 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_PART 项目交互,它会为您将其分解为 CD。

【讨论】:

  • 非常感谢您的完美回答!现在它可以工作了:)
  • 对于遇到同样问题的其他人,我只想通过设置 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”,但你明白了)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-01
  • 2011-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多