Encryption 如何使用lotus脚本解密dxl中导出的富文本数据?

Encryption 如何使用lotus脚本解密dxl中导出的富文本数据?,encryption,lotus-notes,lotus-domino,Encryption,Lotus Notes,Lotus Domino,我正在使用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

我正在使用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
端接头

导出数据后。我将获取此类型的项目主体

GV9aaaaaaaaaaaa…………加密数据


我已经将这个缓冲区解码成base64,我正在获取我的数据。但是在base64解码之后,我在数据中得到了一些头。base64解码后报头缓冲区的起始签名为0x5AFF82。有人能告诉我如何解密吗?

因为字段是富文本,“数据”不仅仅是文本,还包括格式,可能是图片、表格、超链接等等。听起来你只想提取文本

为什么您觉得需要使用DXL执行此操作?NotesRichTextItem类有一个Text属性,它将只提取文本,这似乎是您所需要的。即使出于其他原因需要DXL,您也可以通过这种方式获取文本,并使用仅包含文本的CDATA替换或增加DXL中的富文本内容

如果出于某种原因,DXL是流程的重要组成部分:
富格文本由“CD记录”组成,每个记录都包含一个标题,后跟一些数据。所有文本都在“文本运行”CD记录中,但还有许多其他类型。CD记录的标题信息是标准化的,这样您就不需要识别其中一个来跳过所有不包含文本的内容。因此,编写代码扫描base64数据并仅提取包含文本的数据并不太困难。但是,文本是LMBCS编码的,因此如果文本不在ASCII范围内,则需要对其进行一些修改来解码。C API指南介绍了CD格式。

为什么不使用
exporter.Richtextoption=0
?它无法将RichText数据转换为base64。@克努特:我需要通过解析dxl来获取正文。如果我使用exporter.Richtextoption=0,那么我将很难解析richtext数据,因为它包含很多格式标记。我只需要正文中的文本,而不是它的格式,所有..
exporter.Richtextoption=1
也应该包含所有格式标记。我会在Notes中编写一个代理,将RichText的文本部分复制到一个新的文本项中,然后改为阅读。公式代理可能如下所示:
字段BodyText:=@Abstract([TEXTONLY];64000;“”;“Body”)