2011-01-27 4 views
1

Comment les images peuvent-elles être chargées dans un fichier pdf généré dynamiquement (cfdocument)? En ce que le pdf n'est pas stocké le hdd. Le pdf doit être envoyé par courrier électronique, et le bélier doit être effacé. Les images sont stockées en dehors du dossier wwwroot. Si c'est nécessaire, le pdf peut être stocké dans le disque dur, se joindre, envoyé par e-mail, puis supprimé, mais opter pour qu'il ne soit pas stocké dans le disque dur.pdf-cfdocument dynamique + cfcontent + image + pièce jointe

c: \ coldFusion9 \ imgs \ est le dir

Sample:

<cfdocument format="PDF" localurl="true"> 
<cfoutput> #vars#</cfoutput> 
</cfdocument> 

J'utilise

<img src=""> 

intérieur cfdocument, et il fonctionne si l'image est dans le wwwroot (http ...), mais pas lorsque l'image est hors site wwwroot ("c: \ coldFusion9 \ imgs # image # .png" ou "../imgs/#image#.png").

Je suppose que cfcontent est idéal

Ainsi, à l'intérieur cfdocument, je fais ceci:

<cffile action="readbinary" file="c:\coldFusion9\imgs\#image#.png" variable="img"> 
<cfcontent type="image/jpg" variable="#img#" > 

Le résultat est que les charges d'image, sur l'écran, et non le pdf.

Je voudrais envoyer le pdf en pièce jointe. Le pdf n'a pas besoin de rendre à l'écran, mais à des fins de test, nous pourrions le laisser afficher à l'écran pour savoir si l'image a été chargée ou non, en nommant ou en ne nommant pas le cfdocument. Le pdf rend quand le nom est enlevé, il ne rend pas quand le nom est présent.

Appréciez votre aide.

Répondre

2

Si je comprends bien votre question. Vous voulez 1. Faire une image à partir d'un dossier en dehors de votre Webroot 2. Placez l'image dans un cfdocument 3. Fixer cfdocument à un si c'est cfmail

est le cas, vous devez cfimage au lieu de img et le reste vous pouvez trouver sur le site de Ben Nadel http://www.bennadel.com/blog/1700-Ask-Ben-Creating-A-PDF-And-Attaching-It-To-An-Email-Using-ColdFusion.htm

ou développer sur l'extrait ci-dessous.

<cfdocument format="pdf" name="mydoc"> 

    <cfimage action="writeTobrowser" source="c:\temp\test.png" > 

</cfdocument> 

<cfmail 
    from="[email protected]" 
    to="[email protected]" 
    subject="this is it"> 
    <cfmailparam 
     file="mydoc.pdf" 
     type="application/pdf" 
     content="#mydoc#"/> 
</cfmail> 
+0

Nous vous remercions de votre participation. Avec ce qui précède, je suis capable de générer le pdf, joindre et envoyer un courriel, mais l'image ne se charge pas. Cela fonctionne sur votre fin? Merci encore. –

+0

Fonctionne de mon côté. J'utilise coldfusion 9 qu'utilises-tu? – KobbyPemson

+0

Sur CF9. Cela fonctionne maintenant, pas sûr de ce que j'ai mal fait. Merci de votre aide. –

2

Quelques notes à préciser:

cfdocument utilise une connexion HTTP pour saisir les images, ce qui est la raison pour laquelle vous ne pouvez pas saisir tout à l'extérieur du Webroot. Dans mon expérience, les chemins relatifs sont problématiques, il est donc préférable d'utiliser des chemins absolus. Si vous souhaitez utiliser des images provenant de l'extérieur du site Web, vous devrez les fournir directement, comme dans votre exemple ou comme l'a fait @KobbyPemson.

La raison pour laquelle vous ne voyez pas le fichier PDF lorsque vous ajoutez un nom est que l'attribut name ne nomme pas le fichier PDF. C'est le nom de la variable dans laquelle le PDF est stocké. Ainsi, lorsque vous le fournissez, vous dites à CF d'insérer le PDF dans une variable en utilisant le nom que vous fournissez.

+0

Merci pour l'info! –

+0

Ce sont d'excellents conseils –