2017-04-25 2 views
0

Il semble que la documentation pour les attributs/méthodes adobe manque. J'ai l'API Adobe SDK mais elle manque de détails.Comment trouver un type de champ de formulaire PDF

J'ai un code qui écrit des données d'un document Excel dans un formulaire PDF. Il parcourt tous les champs et écrit les données dans le formulaire PDF. Si le type de champ de formulaire PDF est numérique, je lance et erreur.

Je dois tester si le champ de formulaire PDF est numérique. Si c'est le cas, je vais ajouter ce nom de champ à une collection et l'afficher une fois le processus terminé. J'ai recherché les propriétés de GetField, mais je n'ai trouvé aucune documentation à ce sujet. Quelque chose comme:

IF jso.getfield(strField).type=numeric 
colFail.Add=strField 
+0

Si l'erreur soulève en VBA, vous pouvez essayer d'attraper l'erreur avec '' On Error ... et effectuer une action. Voir [Meilleures pratiques VBA - Traitement des erreurs] (http://stackoverflow.com/documentation/excel-vba/1107/vba-best-practices/5411/error-handling). –

+1

Je mets un gestionnaire d'erreur dans la boucle qui saute hors de la boucle et enregistre le nom du champ qui a provoqué l'erreur. Ensuite, j'affiche les noms des champs qui ont été erronés une fois le processus terminé. Cela fonctionne bien pour ce que j'ai à faire. – Matthew

Répondre

0

Après avoir examiné le lien Peh fourni (merci Peh); voilà comment je manipulaient:

  'Fill the form fields. 
      For r = 20 To 149 
       strField = ToPDFsh.Cells(r, 3).Value 
       strFieldVal = ToPDFsh.Cells(r, 4).Value 
        If strFieldVal = "" Then GoTo BlankVal 

       objJSO.GetField(strField).Value = strFieldVal 

       On Error GoTo ErrHandler 

BlankVal: Suivant R`

bla bla bla ... puis

ErrHandler: 
e = e + 1 
If e > 7 Then 
    MsgBox "Something Bad happend... :(" & vbNewLine & "Form not filled", vbCritical, "Failed" 
    GoTo ErrHandlerExit 
End If 

colFail.Add strField 
Resume Next 
Exit Sub 

ErrHandlerExit: « Fermez le formulaire sans enregistrer les modifications. objAcroAVDoc.Close vrai

'Close the Acrobat application. 
objAcroApp.Exit 

'Release the objects and exit. 
Set objJSO = Nothing 
Set objAcroPDDoc = Nothing 
Set objAcroAVDoc = Nothing 
Set objAcroApp = Nothing 

'Enable the screen. 
Application.ScreenUpdating = True 
Exit Sub 

End Sub