2009-10-19 5 views
2

Nous avons des PDF qui incluent des formulaires PDF standard. Nous aimerions les fusionner et remplir les données dans les champs en même temps. Le problème est que, parfois, nous pouvons fusionner le même document plus d'un document dans le document final.Dans ColdFusion, puis-je renommer un champ de formulaire PDF avec CFPDF?

Y a-t-il un moyen de renommer les champs (Attacher __ #) dans le PDF afin que les documents répétés ne soient pas en conflit?

Je peux le faire avec le code iText, je teste le code CFPDF/CFPDFFORM pour se débarrasser de iText.

Répondre

1

Vous ne pouvez pas renommer les champs avec cfpdf ou cfpdfform. Vous pouvez contourner le problème en remplissant et en aplatissant chaque formulaire avant de les fusionner.

Voici un exemple simplifié:

<!--- populate each form ---> 
<cfloop from="1" to="#arrayLen(files)#" index="i"> 
    <cfset destination = "#i#.pdf" /> 
    <!--- fill in form fields ---> 
    <cfpdfform 
     action  = "populate" 
     source  = "#pdf_source_file#" 
     destination = "#destination#" 
    > 
     <!--- form params here ---> 
    </cfpdfform> 

    <!--- flatten file ---> 
    <cfpdf 
     action  = "write" 
     source  = "#destination#" 
     destination = "#destination#" 
     flatten  = "yes" 
    /> 
</cfloop> 

<!--- merge flattened files ---> 
<cfpdf action="merge" name="output"> 
    <cfloop from="1" to="#arrayLen(files)#" index="i"> 
     <cfpdfparam source="#i#.pdf"> 
    </cfloop> 
</cfpdf> 

<!--- return the full pdf ---> 
<cfcontent type="application/pdf" reset="true" variable="#toBinary(output)#"> 
+0

Merci. Malheureusement, nous ne voulons pas les aplatir pour que l'utilisateur puisse les éditer après le téléchargement. –

Questions connexes