我正在创建一个LotusScript Web代理,该代理在网络上的某处读取pdf文件的内容,并将其作为流返回给浏览器。
代理将像这样调用:getPDF?openAgent&pdfId=123456
并且应该直接返回pdf流。 (我还没有实现url参数捕获)
这是我目前的尝试,我仍然有一个问题,将读缓冲区转换为最终流
Sub Initialize
On Error GoTo errrorhandle
Dim session As New NotesSession
Dim stream As NotesStream
Set stream = session.CreateStream
Dim buffer As variant
Dim fileNum As Integer
Dim txt As String
Dim filename As String
Dim filecontent As String
filename = "C:\temp\test.PDF"
If Not stream.Open(filename,"binary") Then
MessageBox filename,, "Open failed"
Exit Sub
End If
If stream.Bytes = 0 Then
MessageBox filename,, "File has no content"
Exit Sub
End If
Print "content-type:application/pdf"
Do
buffer = stream.read(1)
Print buffer(0)
Loop Until stream.IsEOS
Call stream.Close
Exit Sub
errrorhandle :
Print "Error :" & Error & " at line : " & Erl
Exit sub
End Sub
答案 0 :(得分:0)
无法从Lotusscript中的流输出pdf。
我建议您将pdf附加到notesdocument并将用户重定向到附加的文件URL,然后再删除该文档。
您可以使用以下语法获取保存的pdf http://server/database/unid/ $文件/ myfile.pdf
答案 1 :(得分:0)
关注Thomas Adrian response,将pdf附加到数据库中的文档中,然后按照描述提供链接是最佳解决方案。
请注意,如果所述数据库具有或需要限制访问权限,则将要求用户进行身份验证。
如果网络用户不是经过身份验证的用户,则您需要至少为读者提供托管数据库的ACL中的“匿名”访问权限才能使用...如果数据库有其他用户,这并不总是可取的目的。
但是,您可以为此目的创建专用数据库,并且无限制地访问ACL。