我使用lotus脚本代码导出dxl文件中的项目。这是代码。
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim filename As String
Dim stream As NotesStream
Dim exporter As NotesDXLExporter
Set db = session.Currentdatabase
set dc = db.UnprocessedDocuments
filename = "c:/temp/exportDocs.dxl"
set stream = session.createStream()
If stream.Open(filename) Then
Call stream.Truncate()
set exporter = session.CreateDxlExporter()
exporter.Richtextoption = 1
exporter.MIMEOption = 0
Call stream.WriteText(exporter.Export(dc))
End if
End Sub
导出数据后我正在获取此类型的项目正文
gv9aAAEAAAAAAAAA ..........加密数据。
我已将此缓冲区解码为base64并且我正在获取我的数据。但是我在base64解码后得到了一些标题。 base64解码后的头缓冲区的起始签名是0x5AFF82。任何人都可以告诉我如何解密它。?
答案 0 :(得分:1)
因为该字段是富文本,"数据"不只是文本,还包括格式,可能是图片,表格,超链接等。听起来你想要只提取文本。
为什么你觉得你需要用DXL做这件事? NotesRichTextItem类有一个Text属性,它只会提取文本,这就是你所说的所需。即使出于某些其他原因需要DXL,您也可以通过这种方式获取文本,并使用仅包含文本的CDATA替换或扩充DXL中的富文本内容。
如果出于某种原因,DXL是您流程的重要组成部分: 富文本由" CD Records"每个包括一个标题后跟一些数据。所有文本都在"文本运行" CD记录,但还有很多其他类型。 CD记录的标题信息是标准化的,因此您不需要能够识别一个以跳过所有不包含文本的记录。因此,编写代码来扫描base64数据并仅提取包含文本的数据并不困难。但是,文本是LMBCS编码的,所以如果它不是全部在ASCII范围内,你需要做一些小的解码。 C API指南描述了CD格式。