不用先存盘直接显示附件内容

大家好,才是真的好。

有些需求总是很小众,但是还是被人需要。

Notes从来可以满足这种需求。

其实使用Notes客户机可以直接打开嵌入到文档中的附件,例如Txt文本、Word或PDF附件等。

不过有人提出,能否直接从Notes文档中的附件读取数据,而不是先存储到磁盘,然后再打开,毕竟Notes中的ECL(执行控制列表)以及操作系统上的权限,有时候并不允许你这样。

Notes的特点就是想你所想,能你所想。

因此其实你可以使用LotusSript代码来实现这一点,涉及到其他文档,我们可以使用LotusSript中的DXL——你要是不清楚DXL,可以参考《了不起的DXL!》,我们公众号里啥内容都有涉及。

利用DXL,你可以把文档导出为Base64编码的数据对象,然后再通过NotesStream类来转换为指定字符集的文档。

更加幸运的是,我们不用写这些复杂过程的代码,而是有人已经帮我们写好。
在这里插入图片描述
在我们公众号的后台回复“读取附件”就可以下载到上图的文本文件,里面有一个LotusScript脚本库。

我们这里举一个最为简单的例子,就是读取文档中的txt文本附件。

首先确保我们有一个Notes库,里面有个视图叫做"All",然后存储有Notes文档,这里标题为“test1”,里面有个附件名称为“Notes测试.txt”,代码样例如下:

Sub Click(Source As Button)
      
            Dim ses As New NotesSession, db As NotesDatabase, doc1 As NotesDocument, vu As NotesView


	Set db = ses.Currentdatabase

	Set vu = db.getview("all")

	Set doc1 = vu.Getdocumentbykey("test1", True)

	
	Dim ar As New AttachmentReader(doc1)

	Dim ara As ARAttachment, contents$

	Set ara = ar.item("Notes测试.txt")

	contents = ara.text("UTF-8").readtext

	Msgbox "文件内容: " & contents

End Sub

上述代码中,利用了脚本库中的Text(char_set$),返回文本文件中的文本,使用指定的字符集解释内容。

当我们执行的时候就能看到Notes对话框中提示的文本信息,如下图:
在这里插入图片描述
更详细的介绍请参考站点:https://lotusscript.torknado.com/blog/read-attachment-files-without-writing-to-disk/

今天我们就介绍到这里吧。更多精彩文章可关注微信公号:协作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值