Чернильная подпись Lotus Notes

Я работаю с уже существующим документом Lotus Notes, и мне нужно сделать так, чтобы один из них мог использовать свой сенсорный экран для подписи своего имени. Другими словами, электронная подпись. Я где-то читал об элементе управления inkpicture, но не нашел других сведений об этом, относящихся к Lotus Notes. Наконец, я знаю, что существует решение XPages, но я не могу использовать XPages, потому что документ уже существует в клиенте.

Кто-то задал этот в другом месте http://newscentral.exsees.com/item/b65fcc97b2e21f6403d53b1b28d5bcd6-10fc39c1fae9c814ab0df96984f3badd но никто не ответил.

Кто-нибудь сталкивался с чем-то подобным? Спасибо.


person user2939446    schedule 11.04.2015    source источник


Ответы (1)


У нас есть OLE-объект InkPicture в нашем старом коде. Подформа, в которой она находится, имеет следующие критические предупреждения:

Чтобы предотвратить потерю свойств OLE-объектов InkPicture, подчиненную форму подписи следует редактировать только на ПК с установленным Microsoft Tablet PC Platform SDK!

Не удаляйте пробел перед OLE-объектом подписи. Это может привести к сбою заметок в зависимости от используемой версии.

ОТРЕДАКТИРОВАНО, ЧТОБЫ добавить в форму, которую вы используете, Create-Object и выбрать элементы управления. Элемент управления InkPicture. Затем у нас есть кнопка, которая сохраняет его в поле Rich Text:

{Sub Click(Источник как кнопка)

Const GIF=2

Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim sig As Variant 
Dim tempfile As String
Dim sig2 As Variant 
Dim tempfile2 As String
Dim picstream As NotesStream
Dim session As New NotesSession 

Dim dtEpoch As New NotesDateTime("1/1/2000 00:00:00")
Dim dtNow As New NotesDateTime(Now)
Dim dtTemp As Variant
Dim Rectangle As Variant

Set uidoc = ws.CurrentDocument

' write the contents of the ink object to a temporary file
Set sig = uidoc.GetObject("SignatureInk1")
Set sig2 = uidoc.GetObject("SignatureInk2")
Set Rectangle = CreateObject("msinkaut.Inkrectangle")

'The rectangle is used to clip the signature if it is too big.
Rectangle.SetRectangle -300,0,2000,8000 
If Not sig Is Nothing Then
    If sig.Ink.Strokes.Count=0 Then     

    Else 
        dtTemp=dtNow.TimeDifference(dtEpoch)
        tempfile = Session.GetEnvironmentString("Directory", True)+"\~1"+dtTemp+".tmp"

        Set picstream = session.CreateStream
        sig.Ink.Strokes.Clip Rectangle
        picstream.Open(tempfile)
        picstream.Write sig.Ink.Save(GIF)
        picstream.Close

        sig.Enabled = False
        sig.Ink.DeleteStrokes sig.Ink.Strokes
        sig.Enabled = True
        sig.InkEnabled = True

        uidoc.GotoField "Signature1"
        uidoc.FieldClear
        uidoc.Import "GIF Image", tempfile

        Kill tempfile
    End If
End If

If Not sig2 Is Nothing Then
    If sig2.Ink.Strokes.Count=0 Then        

    Else 
        dtTemp=dtNow.TimeDifference(dtEpoch)
        tempfile2 = Session.GetEnvironmentString("Directory", True)+"\~2"+dtTemp+".tmp"

        Set picstream = session.CreateStream
        sig2.Ink.Strokes.Clip Rectangle
        picstream.Open(tempfile2)
        picstream.Write sig2.Ink.Save(GIF)
        picstream.Close

        sig2.Enabled = False
        sig2.Ink.DeleteStrokes sig2.Ink.Strokes
        sig2.Enabled = True
        sig2.InkEnabled = True

        uidoc.GotoField "Signature2"
        uidoc.FieldClear
        uidoc.Import "GIF Image", tempfile2

        Kill tempfile2  
    End If
End If

Конец подписки}

Эта кнопка гарантирует, что фактическое изображение имеет разумный размер, поскольку управление позволяет рисовать по всему экрану.

Ник Фрай помог мне с этим ответом. Надеюсь это поможет.

person Newbs    schedule 14.04.2015