2010-10-20 4 views
1

J'ai un PDF avec un formulaire intégré. Ce formulaire a des entrées et des listes déroulantes. Je veux lire les données à partir du formulaire, afin que je puisse créer mon propre formulaire HTML à partir de celui-ci. Cela fonctionne très bien pour la plupart - je peux obtenir les noms de champs et les étiquettes - cependant, je n'ai aucun moyen de lire les options disponibles dans un champ déroulant dans le formulaire. Est-il possible de faire cela en utilisant ColdFusion?Comment puis-je lire les options disponibles d'une liste déroulante dans un formulaire PDF en utilisant ColdFusion?

Voici ce que je travaille à ce jour:

<cfpdfform 
    action="read" 
    source="myPDF.pdf" 
    result="pdfFormFields" /> 

Répondre

1

Une façon est d'utiliser un peu de iText. (IIRC, cfpdfform n'inclut pas cette information supplémentaire dans CF9)

<cfscript> 
    // substitute with correct path and form field element 
    yourPDF  = "c:\register_form1.pdf"; 
    comboboxName = "person.language"; 

    // read in the pdf file and get the form field metadata 
    reader   = createObject("java", "com.lowagie.text.pdf.PdfReader").init(yourPDF); 
    AcroFields  = createObject("java", "com.lowagie.text.pdf.AcroFields"); 
    formData  = reader.getAcroFields(); 
    // ONLY for comboboxes (ie drop down lists) 
    prop   = {}; 
    prop.options = formData.getListOptionExport(comboboxName); 
    prop.values  = formData.getListOptionDisplay(comboboxName); 
</cfscript> 

<cfdump var="#prop#"> 
+0

Fonctionne parfaitement jusque là! Je vous remercie! –

Questions connexes