У меня есть база данных MS Access, которая собирает информацию о сотруднике и должна создать подписанный PDF-документ на основе информации этого сотрудника в базе данных.
У меня уже есть часть, которая знает, как записывать в поля вPDF, а также сохранение шаблона в качестве нового имени экземпляра, но я бы хотел использовать зарегистрированное в Windows имя пользователя (которое я также знаю, как получить) человека, заполняющего базу данных, и использовать его в качестве цифровой подписи дляPDF.
Это рабочий код для записи в PDF-документ без цифровой подписи: см. AFields (... подпись) .value = rs! UserName
Sub GeneratePDFInstance(strTemplatePath As String)
Dim AA As Acrobat.AcroApp 'Object
Dim ADoc As Acrobat.AcroAVDoc 'Object
Dim pdDoc As Acrobat.AcroPDDoc
Dim AForm As Object
Dim AFields As Object
Dim fcount As Long
Dim sFieldName As String
Dim strInstancePDF As String
Dim rs As DAO.Recordset
On Error GoTo Catch_error
MsgBox strTemplate
Set AA = CreateObject("AcroExch.App")
Debug.Print "SELECT * FROM qEmployees WHERE ID=" & Form_frmEmployees!ID
Set rs = CurrentDb.OpenRecordset("SELECT * FROM qEmployees WHERE ID=" & Form_frmEmployees!ID)
strInstancePDF = "C:\Users\Public\Documents\ISTools\" & rs![NAME] & ".pdf"
Set ADoc = CreateObject("AcroExch.AVDoc")
If ADoc.Open(strTemplatePath, "") Then
Set pdDoc = ADoc.GetPDDoc 'CreateObject("AcroExch.PDDoc")
Set AForm = CreateObject("AFormAut.App")
Set AFields = AForm.Fields
AFields("topmostSubform[0].Page1[0].Header[0]").Value = rs![Header]
AFields("topmostSubform[0].Page1[0].SMEmail[0]").Value = rs![SMEmail]
AFields("topmostSubform[0].Page1[0].SMPhone[0]").Value = rs![SMPhone]
' ? AFields("topmostSubform[0].Page1[0].Signature[0]").Value = rs!UserName
pdDoc.Save PDSaveCopy, strInstancePDF
MsgBox "Successfully saved"
pdDoc.Close
ADoc.Close True
AA.Exit
Else
MsgBox "Could not write to the PDF"
End If
If ADoc.Open(strInstancePDF, "") Then
AA.Show
Else
MsgBox "Couldn't open the generated PDF"
End If
GoTo GeneratePDFInstance_Exit
Catch_error:
Select Case Err
Case Else
MsgBox Err & " - " & Err.Description
End Select
GeneratePDFInstance_Exit:
Set pdDoc = Nothing
Set AA = Nothing
Set AForm = Nothing
Set ADoc = Nothing
Set AFields = Nothing
Set rs = Nothing
End Sub