<cfhtmltopdf> は、PDF サービスマネージャーを使用して、CFML および HTML を含むテキストブロックから高品質の PDF 出力を作成します。
<cfhtmltopdf> の WebKit 実装は PDFG(PDF Generator の略)と呼ばれます。PDFG は Jetty インストーラーに付属しています。Jetty サーバー内部で実行されるこのコンポーネントはサービスマネージャーと呼ばれ、1 つまたは複数の ColdFusion サーバーから PDF 変換リクエストを受け取ります。(Windows では、サービスは ColdFusion 11 アドオンサービスとして実行され、Solr および PDFG リクエストの両方を処理します。)
<cfhtmltopdf> の WebKit 実装の役割は次のとおりです。
- PDF 変換ライブラリをカプセル化します。
- プロセス内で HTML から PDF への変換を実行します。
HTML または CFML を使用して PDF を生成するときは、XSS の脆弱性が悪用されることのないようにする必要があります。このため、この脆弱性からシステムを保護するための対策は必須です。また、ColdFusion には XSS からの保護を実現するエンコーディング関数が用意されています。以下の関数のページを参照してください。
カテゴリ
データ出力タグ
関連項目
シンタックス
encryption = "AES_128|RC4_40|RC4_128|RC4_128M|None" |
属性
属性 |
必須 / オプション |
デフォルト |
説明 |
encryption |
オプション |
none |
AES_128 RC4_40 RC4_128 RC4_128M なし |
source |
必須 |
|
ソース HTML ドキュメントの URLColdFusion 11 では、HTTP URL は、HTTPS URL に自動的にリダイレクトされます。ColdFusion 2016 では、HTTP から HTTPS への自動リダイレクトは行われないので、手動で HTTPS URL を入力します。 |
destination |
オプション |
|
PDF 形式の出力を保存するファイルのパス名です。destination 属性を省略すると、出力はブラウザーに表示されます。 |
marginBottom |
オプション |
|
ページの下マージンをインチ (デフォルト) またはセンチメートル単位で指定します。下マージンをセンチメートル単位で指定するには、unit=cm 属性を使用します。 |
marginLeft |
オプション |
|
ページの左マージンをインチ (デフォルト) またはセンチメートル単位で指定します。左マージンをセンチメートル単位で指定するには、unit=cm 属性を使用します。 |
marginRight |
オプション |
|
ページの右マージンをインチ(デフォルト)またはセンチメートル単位で指定します。右マージンをセンチメートル単位で指定するには、unit=cm 属性を使用します。 |
marginTop |
オプション |
|
ページの上マージンをインチ(デフォルト)またはセンチメートル単位で指定します。上マージンをセンチメートル単位で指定するには、unit=cm 属性を使用します。 |
name |
オプション |
|
PDF を格納する既存の変数の名前です。 |
orientation |
オプション |
portrait |
ページの向き: portrait landscape |
overwrite |
オプション |
no |
既存のファイルを上書きするかどうかを指定します。destination 属性とともに使用します。 |
ownerPassword |
オプション |
|
オーナーパスワードを指定します。userPassword と同じものにはできません。 |
pageHeight |
オプション |
|
ページの高さをインチ (デフォルト) またはセンチメートル単位で指定します。この属性は、pagetype=custom の場合にのみ有効です。ページの高さをセンチメートル単位で指定するには、unit=cm 属性を使用します。 |
pageType |
オプション |
letter |
ColdFusion で生成するレポートのページタイプです。
legal: 8.5 インチ × 14 インチ letter:8.5 インチ × 11 インチ A4:8.27 インチ × 11.69 インチ A5: 5.81 インチ × 8.25 インチ B4: 9.88 インチ × 13.88 インチ B5: 7 インチ × 9.88 インチ B4-JIS: 10.13 インチ × 14.31 インチ B5-JIS: 7.19 インチ × 10.13 インチ custom:カスタムの高さと幅です。 |
pageWidth |
オプション |
|
ページの幅をインチ(デフォルト)またはセンチメートル単位で指定します。この属性は、pageType=custom の場合にのみ有効です。ページの幅をセンチメートル単位で指定するには、unit=cm 属性を使用します。 |
permissions |
オプション |
|
(format="PDF" の場合のみ)次のいずれかのアクセス許可を設定します。 AllowPrinting AllowModifyContents AllowCopy AllowModifyAnnotations AllowFillIn AllowScreenReaders AllowAssembly AllowDegradedPrinting AllowSecure All None |
saveAsName |
オプション |
|
ブラウザーに出力された PDF ファイルをユーザーが保存するときに名前を付けて保存ダイアログボックスに表示されるファイル名です。 |
unit |
オプション |
in |
pageHeight、pageWidth、および margin の各属性で使用するデフォルトの単位です。 in: インチ cm: センチメートル |
userPassword |
オプション |
|
ユーザーパスワードを指定します。ownerPassword と同じものにはできません。 |
注意:生成された PDF にヘッダー、フッターまたは改ページを挿入するための <cfhtmltopdfItem> が追加されています。 新しい <cfhtmltopdfitem> タグの説明を参照してください。
例
以下の例は、CFML コードから PDF を作成し、表示用の PDF を返す場合の最も基本的な <cfhtmltopdf> の用法を示します。
<cfhtmltopdf> This is a test <cfoutput>#now()#</cfoutput> </cfhtmltopdf>
以下の例は、URL から返されたコンテンツを使って PDF を作成し、表示用の PDF を返す場合の最も基本的な <cfhtmltopdf> の用法を示します。
<cfhtmltopdf source="http://www.google.com/" />
以下の例は、高さと幅を制御し、コンテンツを表示するのではなくファイルに保存するオプションの用法を示します。ファイルはデフォルトで、コードが含まれているテンプレートと同じディレクトリに保存されます。
<cfhtmltopdf destination="usage_example.pdf" overwrite="yes" source="http://www.google.com/" unit="in" pageheight="8" pagewidth="4" pagetype="custom" />
以下の例は、マージン URL を設定する方法を示し、さらに、結果として生成されるファイルを ユーザーに表示するコードを CFContent を使用して追加しています。
<cfhtmltopdf destination="usage_example2.pdf" source="http://www.google.com" overwrite="true" orientation="portrait" pagetype="A4" margintop="1" marginbottom="1" marginleft="1" marginright="1" /> <cfcontent file="#getdirectoryfrompath(getbasetemplatepath())#usage_example2.pdf" type="application/pdf" >
以下の例は、ファイルを開くときにパスワードの入力をユーザーに求めることで、PDF を保護する方法を示します。
<cfhtmltopdf destination="usage_example3.pdf " source="http://www.google.com" overwrite="true" orientation="portrait" pagetype="A4" margintop="1" marginbottom="1" marginleft="1" marginright="1" ownerpassword="owner" userpassword="user" encryption="RC4_128" permissions="AllowPrinting,AllowCopy" />