1

動的に生成された pdf (cfdocument) に画像を読み込むにはどうすればよいですか? pdfがhddに保存されていないという点で。PDFを電子メールで送信する必要があり、RAMがクリアされます。画像は wwwroot フォルダーの外に保存されます。必要に応じて、pdf を hdd に保存し、添付し、電子メールで送信してから削除できますが、hdd に保存しないことを選択します。

c:\coldFusion9\imgs\ はディレクトリです

サンプル:

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

利用した

<img src="">

cfdocument 内にあり、画像が wwwroot (http...) フォルダーにある場合は機能しますが、画像が wwwroot ("c:\coldFusion9\imgs#image#.png" または "../imgs") の外にある場合は機能しません/#image#.png")。

私は cfcontent が理想的だと思います

したがって、cfdocument 内で次のようにします。

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

その結果、pdf ではなく画面に画像が読み込まれます。

PDFを電子メールの添付ファイルとして電子メールで送信したいと考えています。pdf を画面に表示する必要はありませんが、テスト目的で、cfdocument に名前を付けるか付けないかによって、画像が読み込まれたかどうかを確認するために画面に表示することができます。名前が削除されると pdf がレンダリングされますが、名前が存在する場合はレンダリングされません。

あなたの助けに感謝。

4

2 に答える 2

2

明確にするためのいくつかのメモ:

cfdocument は HTTP 接続を使用して画像を取得します。そのため、webroot の外側では画像を取得できません。私の経験では、相対パスは問題があるため、絶対パスを使用することをお勧めします。webroot の外部から画像を使用する場合は、例のように、または @KobbyPemson が行ったように、それらを直接提供する必要があります。

名前を追加しても PDF が表示されないのは、name 属性が PDF に名前を付けていないためです。PDF が格納される変数の名前です。したがって、それを指定すると、指定した名前を使用して変数に PDF を詰め込むように CF に指示されます。

于 2011-01-27T14:28:22.973 に答える
2

あなたの質問を正しく理解していれば。1. ウェブルート外のフォルダから画像を取得する 2. 画像を cfdocument に配置する 3. cfdocument を cfmail に添付する

その場合は、img の代わりに cfimage が必要で、残りは Ben Nadel のサイトhttp://www.bennadel.com/blog/1700-Ask-Ben-Creating-A-PDF-And-Attaching-Itで見つけることができます。 -To-An-Email-Using-ColdFusion.htm

または、以下のスニペットを展開してください。

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

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

</cfdocument>

<cfmail
    from="x@y.com"
    to="y@x.com"
    subject="this is it">
    <cfmailparam
        file="mydoc.pdf"
        type="application/pdf"
        content="#mydoc#"/>
</cfmail>
于 2011-01-27T12:32:29.537 に答える