2015-04-11 3 views
0

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

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

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

ответ

0

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

Для предотвращения потери свойств на объектах InkPicture OLE, то подписи подчиненной должны быть изменены только на ПК с установки Microsoft Tablet PC Platform SDK!

Не удаляйте пространство перед объектом OLE подписи. В противном случае может привести примечания к сбою в зависимости от того, какую версию вы используете

вырезаны , чтобы добавить к форме вы используете Create-Object и выберите элементы управления. Элемент управления InkPicture. Тогда у нас есть кнопка, которая сохраняет его богатое поле Текст:

{Sub Click (Source Как кнопка)

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 

End Sub}

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

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