cfpdf タグを使用して、既存 PDF の読み取り、既存 PDF へのメタデータの書き込み、複数の PDF のマージ、ページの削除、ページのサムネール作成、テキストと画像の抽出、透かしの追加と削除、ドキュメントへの電子署名の追加または削除、非表示情報の削除および墨消しによる PDF コンテンツのセキュリティ強化、パスワードによる PDF の保護を実行できます。
説明
既存の PDF ドキュメントを操作します。cfpdf タグを使用すると、次のようなタスクを実行できます。
- 複数の PDF ドキュメントを 1 つの PDF ドキュメントにマージする
- PDF ドキュメントからページを削除する
- PDF ドキュメントのページをマージし、新規の PDF ドキュメントを生成する
- PDF ドキュメントを線形化して web 表示を高速化する
- Acrobat で作成されたフォームからインタラクティブ機能を除去して、フラットな PDF ドキュメントを生成する
- PDF ドキュメントを暗号化して、パスワードで保護する
- PDF ドキュメントまたは PDF ページからサムネール画像を生成する
- PDF ドキュメントまたはページの透かしを追加または削除する
- PDF ドキュメントに関する情報(ファイルの生成に使用されたソフトウェア、作成者など)を取得したり、PDF ドキュメントに関する情報(タイトル、作成者、キーワードなど)を設定する
- PDF ポートフォリオを作成する
- PDF ドキュメントにヘッダまたはフッタを追加する、および PDF ドキュメントからヘッダまたはフッタを削除する
- PDF ドキュメントを最適化する
履歴
ColdFusion 2016 の <cfpdf> タグの新しいアクション:
ColdFusion 11 では <cfpdf> タグに次の新しい属性が追加されました。
- keystore
- keystorepassword
- keyalias
- keypassword
- author
- signaturefieldname
- unsignall
- height
- width
ColdFusion 8:このタグが追加されました。ColdFusion 9:jpgdpi、maxBreadth、noAttachments、leftMargin、algo、noMetadata、noBookMarks、
noJavaScripts、useStructure、noFonts の新規属性が追加されました。
ライセンスを確認できませんでした。ライセンス証明書の有効期限が切れています。
このタグは、一部の属性の変数をサポートしていません。次に例を示します。
誤:<cfpdf action="export" type="comment" source="samplePDFVariable" />
正:<cfpdf action="export" type="comment" source="c:\source.pdf" exportto="c:\destination.pdf" />
カテゴリ
シンタックス
PDF ドキュメントに透かしを追加 <cfpdf required action = "addwatermark" source = "PDF ファイルへの絶対または相対パス名| 以下のいずれかの cfdocument 変数" 次のいずれか: copyfrom = "最初のページを透かしとして使用する PDF ファイルへの絶対または相対パス名" image = "画像ファイルの絶対または相対パス名|透かしとして使用する画像変数" optional foreground = "yes|no" isBase64 = "yes|no" opacity = "透かしの透明度" overwrite = "yes|no" pages = "透かしを追加するページ" password = "PDF ソースファイルのユーザーまたは所有者パスワード" position = "ページ上に透かしを配置する位置" rotation = "透かしの回転角度" showonprint = "yes|no"> // 次のいずれかを使用: destination = "PDF 出力ファイルのパス名" name = "PDF ドキュメント変数名" image = "フッターとして使用する画像ファイル名" text = "フッターに使用するテキスト" <! --- action=sanitize ---> <cfpdf // required action="sanitize" source = "PDF ファイル|PDF ドキュメント変数|cfdocument 変数への絶対パスまたは相対パス" // 以下の属性のいずれかを使用: destination = "PDF 出力ファイルのパス名" name = “PDF ドキュメント変数名”> <! --- シンタックスの終わり ---> <! --- action=export comments ---> <cfpdf // required action="export" type="comment" source = "PDF ファイル|PDF ドキュメント変数|cfdocument 変数への絶対または相対パス名" exportTo = "xfdf ファイルの宛先"> <! --- シンタックスの終わり ---> <! --- action=import comments ---> <cfpdf // required action="import" type="comment" source = "PDF ファイルへの絶対または相対パス名|PDF ドキュメント変数|cfdocument 変数" importFrom = "source of xfdf file" // 次の属性のいずれかを使用: destination = "PDF 出力ファイルのパス名" name = “PDF ドキュメントの変数名”> <! --- シンタックスの終わり ---> <! --- action=export metadata ---> <cfpdf // required action="export" type="metadata" source = "PDF ファイル|PDF ドキュメント変数|cfdocument 変数への絶対または相対パス名" exportTo = "xmp ファイルの宛先"> <! --- シンタックスの終わり ---> <! --- アクション = メタデータの読み込み---> <cfpdf // required action="import" type="metadata" source = "PDF ファイルへの絶対または相対パス名|PDF ドキュメント変数|cfdocument 変数" importFrom = "source of xmp file" // 次の属性のいずれかを使用: destination = "PDF 出力ファイルのパス名" name = “PDF ドキュメント変数名”> <! --- シンタックスの終わり ---> <! ---アクション = アーカイブ---> <cfpdf // required action="archive" source="#sourcefilename#" // 次の属性のいずれかを使用: destination = "PDF 出力ファイルのパス名" name = “PDF ドキュメント変数名”> // optional standard = "3b"/> <! --- シンタックスの終わり ---> <! --- action=addAttachments ---> <cfpdf // required action="addAttachments" source = "PDF ファイルへの絶対または相対パス名|PDF ドキュメント変数|cfdocument 変数|ディレクトリパス" // 次の属性のいずれかを使用: destination = "PDF 出力ファイルのパス名" name = “PDF ドキュメント変数名” <cfpdfparam // required source= "添付ファイルのパス" filename = "添付ファイルのファイル名" encoding = "ファイル名のエンコーディング > // optional description = "説明的なテキスト" mimetype = "eg: application/pdf, text/html"> > <! --- シンタックスの終わり ---> <! --- action=addStamp ---> <cfpdf // required action="addStamp" source = "PDF ファイルへの絶対または相対パス名|PDF ドキュメント変数|cfdocument 変数" // 次の属性のいずれかを使用: destination = "PDF 出力ファイルのパス名" name = “PDF ドキュメント変数名”> <cfpdfparam pages = "ページ番号|ページ範囲|コンマ区切りのページ番号" <! ---スタンプの width:height の比率を 10:3 にすることをお勧めします ---> coordinates = "llx,lly,urx,ury" iconName = "アイコンの名前" note = "スタンプのコンテンツ" > > <! --- シンタックスの終わり---> Add headers <cfpdf required action = "addheader" source = "PDF ファイルへの絶対または相対パス名|PDF ドキュメント変数| cfdocument 変数" pages = "フッターに追加するページ" optional isBase64 = "yes|no" overwrite = "yes|no" password = "PDF ソースファイルのユーザーまたは所有者パスワード" showonprint = "yes|no"> align = "left|right|center" leftmargin = "ヘッダー左マージンの値" rightmargin = "ヘッダー右マージンの値" numberformat = "LOWERCASEROMAN|NUMERIC|UPPERCASEROMAN" <! --- _PAGENUMBER または _LASTPAGENUMBER のいずれかを使用---> opacity = "ヘッダーの透明度" topmargin = "ヘッダーの上マージンの値" \\one of the following: destination = "PDF 出力ファイルのパス名" name = "PDF ドキュメント変数名" text = _PAGELABEL: add current page label|_LASTPAGELABEL: add last page label| _PAGENUMBER: add current page number|_LASTPAGENUMBER: add last page number \\text for the header.標準のテキスト文字列を追加することもできます。image = "ヘッダーとして使用する画像のファイル名" Add footer <cfpdf required action = "addfooter" source = "PDF ファイルへの絶対または相対パス名|PDF ドキュメント変数| cfdocument 変数" pages = "フッターを追加するページ" optional isBase64 = "yes|no" overwrite = "yes|no" password = "PDF ソースファイルのユーザーまたは所有者パスワード" showonprint = "yes|no"> destination = "PDF 出力ファイルのパス名" name = "PDF ドキュメント変数名" align = "left|right|center" one of the following: image = "フッターとして使用する画像ファイル名" text = _PAGELABEL: add current page label|_LASTPAGELABEL: add last page label| _PAGENUMBER: add current page number|_LASTPAGENUMBER: add last page number \\text for the header leftmargin = "フッターの左マージンの値" rightmargin = "フッターの右マージンの値" numberformat opacity = "フッターの透明度" bottommargin = "下マージンの値" PDF ドキュメントからページを削除 <cfpdf required action = "deletepages" pages = "削除するページ" source = "PDF ファイルへの絶対または相対パス名|PDF ドキュメント変数| cfdocument 変数" optional overwrite = "yes|no" password = "PDF ソースファイルのパスワード" 次のいずれか: destination = "PDF 出力ファイルのパス名" name = "PDF ドキュメント変数名"> ヘッダーとフッターを削除 <cfpdf required action = "removeheaderfooter" source = "PDF ファイルへの絶対または相対パス名|PDF ドキュメント変数| cfdocument 変数" optional overwrite = "yes|no" pages = "透かしを追加するページ" password = "PDF ソースファイルのユーザーまたは所有者パスワード" 次のいずれか: destination = "PDF 出力ファイルのパス名" name = "PDF ドキュメント変数名" PDF ドキュメントについての情報を取得 <cfpdf required action = "getinfo" name = "structure 変数名" source = "PDF ファイルへの絶対または相対パス名|PDF ドキュメント変数| cfdocument 変数" optional password = "PDF ソースファイルのパスワード"> PDF ドキュメントを出力 PDF ファイルへ結合 <cfpdf required action = "merge" 次のいずれか: directory = "結合する PDF ファイルのんディレクトリ" source = "PDF ソースファイルのコンマ区切りリスト|PDF ファイルへの絶対または相対パス名|PDF ドキュメント変数|cfdocument 変数" <cfpdfparam> \\パッケージが true に指定されている場合に必須 order = "name|time" <cfpdfparam> が指定されている場合次のいずれか: name = "PDF ドキュメント変数名" destination = "PDF 出力ファイルのパス名" optional package = "true|false" <! ---true に設定した場合は PDF パッケージを作成します。cfpdfparam タグに次のような説明を提供できます。<cfpdfparam file="filename desc="">---> ascending = "yes|no" keepBookmark = "yes|no" overwrite = "yes|no" pages = "PDF ソースファイルに結合するページ" password = "PDF ソースファイルのパスワード" stopOnError = "yes|no" \\次のいずれか: destination = "PDF 出力ファイルのパス名" name = "PDF ドキュメント変数名"> DDX 命令を使用して PDF ドキュメントを操作 <cfpdf required ddxfile = "DDX filepath|DDX string" inputfiles = "#inputStruct#" outputfiles = "#outputStruct#" name = "structure name"> optional action="processddx" PDF ドキュメントにパスワードを設定して暗号化 <cfpdf required action = "protect" source = "PDF ファイルへの絶対または相対パス名|PDF ドキュメント変数| cfdocument 変数" 次のうち 1 つ以上: newUserPassword = "password" newOwnerPassword = "password" if newOwnerPassword is specified: permissions = "All|AllowAssembly|AllowDegradedPrinting|AllowCopy|AllowFillIn| AllowModifyAnnotations| AllowModifyContents|AllowPrinting|AllowScreenReaders|AllowSecure|None| comma-separated list" optional destination = "PDF 出力ファイルのパス名" encrypt = "RC4_40|RC4_128|RC4_128M|AES_128|AES_256R6|AES_256R5|none" overwrite = "yes|no" password = "ソースファイルのパスワード"> PDF ドキュメント変数に名前を付ける <cfpdf required action = "read" name = "PDF ドキュメント変数名" source = "PDF ファイルへの絶対または相対パス名|PDF ドキュメント変数| cfdocument 変数" optional password = "PDF ソースファイルのパスワード"> PDF ドキュメントから透かしを削除 <cfpdf required action = "removeWatermark" source = "PDF ファイルへの絶対または相対パス名|PDF ドキュメント変数| cfdocument 変数" optional overwrite = "yes|no" pages = "透かしを削除するページ" password = "PDF ソースファイルのパスワード"> 次のいずれか: destination = "PDF 出力ファイルのパス名" name = "PDF ドキュメント変数名" PDF ドキュメントに関する情報を設定 <cfpdf required action = "setinfo" info = "#structure variable name#" source = "PDF ファイルへの絶対または相対パス名|PDF ドキュメント変数| cfdocument 変数" optional destination = "PDF 出力ファイルのパス名" overwrite = "yes|no" password = "PDF ソースファイルのパスワード"> PDF ドキュメントのページから無ネールを取得 <cfpdf required action = "thumbnail" source = "PDF ファイルへの絶対または相対パス名|PDF ドキュメント変数| cfdocument 変数" optional destination = "サムネール画像を書き込むディレクトリパス" format = "png|jpeg|tiff" imagePrefix = "出力ファイル名の接頭辞として使用する文字列" overwrite = "yes|no" password = "PDF ソースファイルのパスワード"> pages = "サムネールにするページ" resolution= "low|high" scale = "1 から 100 のパーセンテージ" transparent = "yes|no"> hires = "yes|no" overridepage = "yes|no" compresstiffs = "yes|no" maxscale = "サムネールの最大スケール" maxlength = "サムネールの最大長さ" maxbreadth = "サムネールの最大幅" jpgdpi = "sets the dpi (dots per inch) value of the jpeg image.デフォルト値は 96 dpi です。" 出力ファイルに PDF ドキュメントを書き込む <cfpdf required action = "write" source = "PDF ファイルへの絶対または相対パス名|PDF ドキュメント変数| cfdocument 変数" \\次のいずれか destination = "PDF 出力ファイルのパス名" name = #PDF variable# <! ---新しい変数へのサポートが追加されました---> optional flatten = "yes|no" overwrite = "yes|no" password = "PDF ソースファイルのパスワード" saveOption = "linear|incremental|full" version = "1.1|1.2|1.3|1.4|1.5|1.6"> encodeall = "yes|no" PDF ドキュメントの画質を落とす <cfpdf required action = "optimize" source = "PDF ファイルへの絶対または相対パス名|PDF ドキュメント変数| cfdocument 変数" algo = "bilinear|bicubic|nearest_neighbour" <! ---画像のダウンサンプリング用アルゴリズム---> pages = "*" <! ----PDF ドキュメントのオブジェクトと関連付けられたページ番号---> optional vscale= "修正する画像の垂直比率。有効な値は vscale>0" hscacle="修正する画像の水平比率。有効な値は hscale<1" destination = "PDF 出力ファイルのパス名" name = "PDF ドキュメント変数" noattachments = "すべての添付ファイルを無視" nobookmarks = "すべてのブックマークを無視" nocomments = "すべてのコメントを無視" nofonts = "すべてのフォントを無視" nojavascripts = "すべての JavaScript アクションを無視" nolinks = "外部クロス参照を無視を無視" nometadata = "ドキュメント情報およびメタデータを無視" nothumbnails = "埋め込みページサムネールを無視" overwrite = "true" <! ---PDF ドキュメントの指定オブジェクトを上書き---> password = "" <! ---PDF ドキュメントパスワード---> Extract text <cfpdf required action="extracttext" <! ---PDF のすべての単語を抽出します。---> source= "PDF ファイルへの絶対または相対パス名|PDF ドキュメント変数| cfdocument 変数" pages = "*" <! ----PDF ドキュメントからテキストを抽出する必要があるページ番号---> optional addquads = "add the position or quadrants for the text in the PDF" honourspaces = "true|false" overwrite = "true" <! ---PDF ドキュメントの指定オブジェクトを上書き---> password = "" <! --- PDF ドキュメントパスワード---> type = "string|xml" <! ---テキストを抽出する必要がある形式---> 次のいずれか: destination = "PDF 出力ファイルのパス名" name = "PDF ドキュメント変数" usestructure = "true|false" Extract image <cfpdf required action = "extractimage" <! ---画像を抽出してディレクトリに保存---> source = "PDF ファイルへの絶対または相対パス名|PDF ドキュメント変数| cfdocument 変数" pages = "*" <! ---画像を抽出する必要があるページ番号---> optional overwrite = "true|false" <! ---true に設定した場合は既存の画像を上書き---> format = "png|tiff|jpg" <! ---画像を抽出する必要がある形式---> imageprefix = "*" <! ---画像名の接頭辞に使用する文字列---> password = "" <! --- PDF ドキュメントパスワード---> destination = "PDF 出力ファイルのパス名" Page level transformations <cfpdf required action = "transform" source = "PDF ファイルへの絶対または相対パス名|PDF ドキュメント変数| cfdocument variable" pages = 変形するページ" optional hscale = "ページの水平スケールの値" overwrite = "yes|no" password = "PDF ソースファイルのパスワード" position = "x, y" <! ---value in pixels---> rotation = "0|90|180|270" vscale = "変形するページの長さ" つぎのいずれか: destination = ""PDF ドキュメントの保存先ディレクトリのパス" name = "PDF ドキュメント変数" // redact <cfpdf action="redact" source="ソース PDF ドキュメント" destination="宛先 PDF ドキュメント" overwrite="true | false"> <cfpdfparam pages="from page-to page" coordinates="llx,lly,urx,ury"> </cfpdf>
このタグの属性は attributeCollection 属性で指定でき、その値は構造体になります。attributeCollection 属性で構造体の名前を指定し、タグの属性名を構造体のキーとして使用します。
関連項目
cfdocument、cfdocumentsection、cfpdfform、cfpdfformparam、cfpdfparam、cfpdfsubform、cfprint、IsDDX、IsPDFFile、
IsPDFObject、『ColdFusion アプリケーションの開発』の PDF ドキュメントの組み立て
属性
属性 |
アクション |
必須/オプション |
説明 |
---|---|---|---|
action |
N/A |
オプション |
実行するアクション: archive addAttachments addStamp addWatermark deletePages export getInfo import merge processddx protect read removeWatermark sanitize setInfo sign thumbnail write optimize extracttext extractimage addheader addfooter removeheaderfooter transform unsign validatesignature ColdFusion 11 の新機能 – ドキュメント内のすべての署名を確認します。
readsignaturefields ColdFusion 11 の新機能 - すべての署名フィールドを読み取って、属性名で指定される変数のクエリオブジェクトを返します。
ColdFusion 2016 の新機能:
|
addquads |
extracttext |
オプション |
サムネールの位置および象限を追加します。 |
align |
addheader |
オプション |
PDF のヘッダーとフッターを揃えます。 |
algo |
optimize |
必須 |
画像ダウンサンプリングのアルゴリズムを指定します。値は bilinear、bicubic および nearest_neighbour です。 |
ascending |
merge |
オプション |
PDF ファイルのソート順です。 yes:ファイルは昇順でソートされます。 no:ファイルは降順でソートされます。 |
author |
sign |
オプション |
財務関係、法務関係などの規制されたトランザクションを含むビジネストランザクションには、ドキュメントの署名時に高いレベルの保証が必要になります。 ドキュメントの信憑性の検証 – このドキュメントの署名者のアイデンティティを確認できる ドキュメントの完全性の検証 - 作成者ベースの署名は、これらの両方のセキュリティサービスを提供します。 この属性が指定されていない場合は、 |
bottomMargin |
addfooter |
オプション |
bottomMargin の値を指定します。 |
copyFrom |
addWatermark |
オプション |
透かしとして使用する PDF ドキュメントのパス名です(このドキュメントの最初のページが透かしとして使用されます)。 |
compresstiffs |
thumbnail |
オプション |
TIFF 形式のサムネールを圧縮します。 |
ddxfile |
processddx |
必須 |
DDX ファイルのパス名または DDX 命令を含む文字列です。 |
destination |
addWatermark archive
|
|
変更後の PDF ドキュメントのパス名です。保存先のファイルが既に存在する場合は、overwrite 属性を yes に設定します。 |
directory |
merge |
オプション |
マージする PDF ドキュメントのディレクトリです。directory 属性または source 属性のいずれかを指定します。directory 属性を指定した場合、デフォルトでは、ファイル名の降順でドキュメントの順序が決定されます。ファイルの順序を変更するには、order 属性を使用します。 |
encodeall |
write |
オプション |
ページ内容を最適化するために、エンコードされていないストリームをエンコードします。 |
protect |
オプション |
PDF 出力ファイルの暗号化方式です。ColdFusion 2016 では、AES_256R6 と AES_256R5 の 2 つの暗号化アルゴリズムが新たにサポートされます。
メモ:JRE では、「Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files」がインストールされている必要があります。 これは、新しい暗号化アルゴリズムに対してのみ必要です。 詳しくは、PDF ドキュメントの暗号化を参照してください。 |
|
flatten |
write |
オプション |
Acrobat で作成されたフォームにのみ適用され、インタラクティブ機能を無効にするかどうかを指定します (LiveCycle で作成されたフォームには適用されません)。 yes:フォームフィールドのインタラクティブ機能が無効になります。 no:フォームフィールドのインタラクティブ機能が保持されます。 |
foreground |
addWatermark |
オプション |
ページ上の透かしの配置です。 yes:前景(ページコンテンツの上)に透かしが表示されます。 no:背景(ページコンテンツの背後)に透かしが表示されます。 |
format |
thumbnail |
オプション |
出力するサムネール画像のファイルタイプです。 jpg tiff png |
hires |
thumbnail |
オプション |
yes に設定されている場合、サムネールに対して高解像度を設定します。 |
height |
sign |
オプション |
署名フィールドの高さです。 |
honourspaces |
extracttext |
オプション |
このオプションを "true" に設定すると、読みやすさと間隔調整の精度が向上します。 |
hscale |
optimize |
オプション |
変更される画像の水平比率です。有効な値は hscale<1 です。 |
image |
addWatermark |
オプション |
透かしとして使用する画像です。パス名、画像ファイルを含む変数、または ColdFusion 画像変数を指定できます。 |
imagePrefix |
thumbnail |
オプション |
生成された各画像サムネールファイルに使用する接頭辞です。画像のファイル名には、imagePrefixpagen.format の形式が使用されます。例えば、imagePrefix 属性が myThumbnail に設定されたドキュメントの 1 ページ目から生成されたサムネールは myThumbnail_page_1.jpg という名前になります。 |
info |
setInfo |
必須 |
関連情報の構造体変数です(例:"#infoStruct#")。PDF 出力ファイルの作成者、題名、タイトル、キーワードを指定できます。 |
inputFiles |
processddx |
必須 |
DDX ファイル内の入力変数または要素とパス名の文字列に PDF ソースファイルをマップする構造体です。 |
isBase64 |
addWatermark |
オプション |
image 属性が指定されている場合にのみ有効です。透かしとして使用する画像が Base64 形式であるかどうかを指定します。 yes:画像は Base64 形式です。 no:画像は Base64 形式ではありません。 |
jpgdpi |
addThumbnail |
オプション |
JPEG 画像の DPI を設定します。デフォルトは 96 dpi です。 |
keepBookmark |
merge |
オプション |
ソース PDF ドキュメントのブックマークをマージ後のドキュメントでも保持するかどうかを指定します。 yes:ブックマークは保持されます。 no:ブックマークは削除されます。 |
keyalias |
sign |
オプション |
証明書と秘密キーをキーストアに保存するために使用するキーのエイリアスです。指定しない場合は、キーストアの最初のエントリがエイリアスとして使用されます。 |
keystore |
sign |
必須 |
|
keypassword |
sign |
オプション |
秘密キー用のパスワードです。指定しない場合は、keystorepassword が使用されます。 |
keystorepassword |
sign |
必須 |
キーストアのパスワードです。 |
leftmargin |
addheader |
オプション |
ヘッダの左マージンの値を指定します。 |
maxbreadth |
thumbnail |
オプション |
サムネールの最大幅を指定します。 |
maxlength |
thumbnail |
オプション |
サムネールの最大長を指定します。 |
maxscale |
thumbnail |
オプション |
サムネールの最大スケールを指定します。 |
name |
addWatermark |
必須: |
PDF ドキュメント変数名です(例:myBook)。 readsignaturefields アクションの場合、名前はソース PDF ドキュメント内にあるすべての署名フィールドの情報を示す構造体を表します。
|
newOwner |
protect |
オプション(「説明」を参照) |
PDF ドキュメントのアクセス許可を設定するためのパスワードです。 |
newUser |
protect |
オプション(「説明」を参照) |
PDF ドキュメントを開くためのパスワードです。newUserPassword 属性または newOwnerPassword 属性のいずれかを指定します。両方を指定する場合は、異なるパスワードを使用する必要があります。詳細については、「PDF ドキュメントのパスワード」を参照してください。 |
noattachments |
thumbnail |
オプション |
PDF ドキュメントからすべての添付ファイルを削除します。 |
noattachments |
optimize |
オプション |
すべてのファイル添付を削除します。 |
nobookmarks |
optimize |
オプション |
PDF ドキュメントからブックマークを削除します。 |
nocomments |
optimize |
オプション |
PDF ドキュメントからコメントを削除します。 |
nofonts |
optimize |
オプション |
フォントのスタイル設定を削除します。 |
nojavascripts |
optimize |
オプション |
ドキュメントレベルのすべての JavaScript アクションを削除します。 |
nolinks |
optimize |
オプション |
外部相互参照を削除します。 |
nometadata |
optimize |
オプション |
ドキュメント情報およびメタデータを削除します。 |
nothumbnails |
optimize |
オプション |
埋め込みページサムネールを削除します。 |
numberformat |
addfooter |
オプション |
フッターの PDF ページの自動番号形式を指定します。 |
opacity |
addWatermark |
オプション |
透かしの不透明度です。有効な値は 0 (透明) ~ 10 (不透明) の整数です。 |
order |
merge |
オプション |
ディレクトリ内の PDF ドキュメントをマージする順序です。 name:ドキュメントはファイル名のアルファベット順でマージされます。 time:ドキュメントはタイムスタンプ順でマージされます。 |
outputFiles |
processddx |
必須 |
キーとして DDX ファイルまたは文字列で指定された出力ファイルを含み、値として結果ファイルのパス名を含む構造体です。 |
overwrite |
addSign addWatermark |
オプション |
保存先のファイルが既に存在する場合、PDF 出力で上書きするかどうかを指定します。 yes:書き込み先のファイルを上書きします。 no:書き込み先のファイルを上書きしません。 |
package |
merge |
オプション |
PDF パッケージを作成します。 |
pages |
addWatermark |
必須: |
アクションの対象となるソース PDF ドキュメントのページです。"1,6-9,56-89,100, 110-120" のような形式で、複数のページまたはページ範囲を指定できます。
|
password |
addWatermark addSign |
オプション |
ソース PDF ドキュメントのオーナーパスワードまたはユーザーパスワードです (ドキュメントがパスワードで保護されている場合)。 |
permissions |
protect |
オプション |
PDF ドキュメントに対するアクセス許可のタイプ: All AllowAssembly AllowCopy AllowDegradedPrinting AllowFillIn AllowModifyAnnotations AllowModifyContents AllowPrinting AllowScreenReaders AllowSecure None |
position |
addWatermark sign |
オプション |
position 属性は、署名フィールドの左下隅の座標を表します。 |
resolution |
thumbnail |
オプション |
サムネール画像の生成に使用する画質です。 high:高解像度を使用します low:低解像度を使用します。 |
rotation |
addWatermark |
オプション |
ページ上の透かし画像を回転させる角度です(例:"30")。 |
saveOption |
write |
オプション |
PDF 出力の保存オプションです。 full:通常の保存(デフォルト) incremental:署名付き PDF ドキュメントの変更を保存する場合に必須 linear:表示を高速化する場合 |
scale |
thumbnail |
オプション |
ソースページを基準としたサムネールのサイズです。1 ~ 100 のパーセントで指定します。 |
showOnPrint |
addWatermark |
オプション |
PDF ドキュメントとともに透かしを印刷するかどうかを指定します。 yes:PDF ドキュメントとともに透かしを印刷します。 no:透かしは表示専用になります。 |
signature |
sign unsign |
オプション |
ユーザーが署名をする署名フィールドの名前、またはユーザーが署名を解除する署名フィールドの名前です。 |
source |
archive addWatermark |
必須( |
ソースとして使用する PDF ドキュメントです。指定できるソースは次のいずれかです。 PDF ドキュメントの絶対パス名または相対パス名 (例 : c:¥work¥myPDF.pdf または myPDF.pdf)。 cfdocument タグまたは cfpdf タグによってメモリ内に生成される PDF ドキュメント変数(例:"myPDFdoc")。 |
stopOnError |
merge |
オプション |
directory 属性が指定されている場合にのみ有効です。指定したディレクトリに ColdFusion で読み込み可能な PDF ファイル以外のファイルが含まれている場合にマージ処理を停止するか続行するかを指定します。 yes:指定したディレクトリに無効な PDF ファイルが存在する場合、マージ処理を停止します。 no:指定したディレクトリに無効なファイルが存在する場合でも、マージ処理を続行します。 |
transparent |
thumbnail |
オプション |
(format="png" のみ)画像の背景を透明にするか不透明にするかを指定します。 yes:背景は透明です。 no:背景は不透明です。 |
unsignall |
unsign |
オプション |
ドキュメント内のすべての署名を解除します。 |
useStructure |
extracttext |
オプション |
PDF の構造に基づいて内容を抽出できます。この属性と同時に honourspaces 属性を使用すると、抽出されたテキストの読みやすさが向上します。 |
version |
write |
オプション |
ドキュメントの書き込みに使用する PDF のバージョンです。 1.1 1.2 1.3 1.4 1.5 1.6 |
width |
sign |
オプション |
署名フィールドの幅です。
|
PDF ソースドキュメントに変更を加える場合は、source 属性と destination 属性で同じファイルパス名を指定し、overwrite 属性を yes に設定します。
ColdFusion を使用して作成された署名付きの PDF をアーカイブすると、Adobe Acrobat で開いたときに異常動作します。このドキュメントをアーカイブ用に修正するには、Acrobat のセキュリティオプションの「文書の変更」権限を有効にしてください。
使用方法
cfpdf タグを使用すると、既存の PDF ドキュメントを操作したり、マージしたりすることができます。cfpdf タグは Acrobat で使用可能な多くの機能を提供しますが、このタグを使用して別のファイル形式から PDF ドキュメントを生成することはできません。HTML および CFML コンテンツから PDF 出力を作成するには、cfdocument タグを使用します。
cfpdf タグを cfdocument タグ内に埋め込んだり、cfdocument タグを cfpdf タグ内に埋め込んだりすることはできません。ただし、cfdocument タグの出力を変数に書き込み、その変数を cfpdf タグに渡すことは可能です。次の例では、cfdocument タグを使用して表紙を作成し、それを別の PDF ドキュメントとマージする方法を示します。
<! --- ドキュメントタを使用してカバーページを作成し、cfdoc と呼ばれる変数に出力を書き込みます。---> <cfdocument format="PDF" name="cfdoc"> <html> <body> <h1>カバーページです</h1> </body> </html> </cfdocument> <! ---cfpdf タグと cfpdfparam タグを使用し、個別の PDF ドキュメントを、new.pdf と呼ばれる新しい PDF ドキュメントに結合します。cfdocument タグを使用して作成された cfdoc 変数は最初の cfpdfparam タグのソース値です。---> <cfpdf action="merge" destination="/samtemp/pdfs/new.pdf" overwrite="yes"> <cfpdfparam source="cfdoc"> <cfpdfparam source="/samtemp/pdfs/pdf2.pdf"> <cfpdfparam source="/samtemp/pdfs/pdf1.pdf"> </cfpdf>
cfpdf タグを使用して、インタラクティブ機能を持つ PDF フォームファイルを 1 つの PDF ドキュメントにマージし、write アクションで flatten 属性を指定すると、Acrobat で作成されたフォームからインタラクティブ機能を除去できます。PDF フォームのデータを処理するには、cfpdfform および関連タグを使用します。cfpdf タグを使用して、Adobe LiveCycle Designer ES で作成されたフォームをフラット化することはできません。
PDF ファイルの読み込みと書き込み
cfpdf タグには、PDF ファイルの読み込みと書き込みに関する様々なオプションがあります。PDF 変数または PDF ファイルをソースとして指定し、変数またはファイルに出力を書き込むことができます (ただし、両方を行うことはできません)。次の表で、読み込みおよび書き込みの操作について説明します。
タスク |
属性 |
例 |
---|---|---|
ソース PDF ファイルを上書きする |
source 属性で PDF ファイルのパス名を指定し、destination 属性を指定しない |
<cfpdf action="addWatermark" source="myPDF.pdf" image="myImage.jpg"> |
メモリ内の PDF ドキュメントをファイルに書き込む |
source 属性で PDF 変数を指定し、destination 属性で PDF ファイルのパス名を指定する |
<cfpdf action="addWatermark" source="myPDF" image="myImage.jpg" destination="outputFile.pdf"> |
PDF ドキュメントを新規ファイルに書き込む |
source 属性で PDF ファイルのパス名を指定し、destination 属性で別の PDF ファイルのパス名を指定する |
<cfpdf action="addWatermark" source="sourceFile.pdf" image="myImage.jpg" destination="outputFile.pdf"> |
PDF ファイルを PDF 変数に書き込む |
source 属性で PDF ファイルのパス名を指定し、name 属性で PDF 変数を指定する |
<cfpdf action="addWatermark" source="sourceFile.pdf" image="myImage.jpg" name="myPDF"> |
メモリ内の PDF ドキュメントを上書きする |
source 属性で PDF 変数名を指定し、destination 属性を指定しない |
<cfpdf action="addWatermark" source="myPDF" image="myImage.jpg"> |
メモリ内の PDF ファイルの操作
ColdFusion では、name 属性を使用して PDF ファイルを変数に書き込むことができます。この方法は、ドキュメントに対して複数の操作を実行してからファイルに書き込む場合に便利です。ただし、この方法は多くのメモリを消費するので、小さなファイルを操作する場合にのみ使用してください。大きな PDF ドキュメントを操作する場合は、PDF ドキュメントをファイルに書き込みます。ソースとして変数を指定する場合は、name 属性を指定しないことを推奨します。name 属性を指定するとコピーが作成されるので、処理速度が低下します。ほとんどの場合、ファイルに書き込んだ後でも変数を再利用できるので、name 属性を指定する必要はありません。
try/catch ブロック内で PDF 変数を使用してエラーが発生した場合は、エラーの発生後にその変数を使用できなくなります。
PDF ドキュメントの印刷
cfprint タグを使用すると、PDF ドキュメントを印刷できます。ただし、注釈、コメント、編集者による校正などのマークアップは印刷されません。
- addWatermark アクション PDF ドキュメント内の指定したページに透かしを追加するには、addwatermark アクションを使用します。次のいずれかの方法で透かしを追加できます。
- 別の PDF ドキュメントの最初のページを透かしとして使用します。画像を拡大せずに、copyfrom で指定したページがソースドキュメントの上に重ねられます。
- 透かしとして使用する画像ファイルを指定します。
画像変数を使用してメモリ内の画像を指定します。
次のコードは、PDF ドキュメントの最初のページを透かしとして使用する方法を示しています。
<cfpdf action="addWatermark" source="c:\myBook.pdf" copyFrom="e:\yourBook.pdf" destination="ourBook.pdf" overwrite="yes">
デフォルトでは、出力ファイルのすべてのページに透かしが適用され、透かし画像がページの中央に配置されます。次のコードは、JPEG 画像を透かしとして使用し、出力ファイルの最初のページに透かしを適用します。
<cfpdf action="addWatermark" source="Book.pdf" image="../cfdocs/images/artgallery/paul01.jpg" destination="newBook.pdf" pages="1" overwrite="yes">
ColdFusion 画像を透かしとして指定するには、cfimage タグまたは Image 関数を使用します。addwatermark アクションでは、RGB および ARGB 画像もサポートされます。特に、cfimagetag タグおよび関連する関数を使用して追加された画像もサポートされます。次の例では、画像をグレースケールに変換し、それを透かしとして PDF ファイルに適用します。
<! ---ImageNew 関数を使用して JPEG ファイルから ColdFusion 画像を作成します。---> <cfset myImage=ImageNew("../cfdocs/images/artgallery/jeff05.jpg")> <! ---ImageGrayscale 関数を使用して画像をメモリーでグレースケールに変換します。---> <cfset ImageGrayscale(myImage)> <! --- 画像変数を指定し、グレースケール画像を Book.pdf ファイルの透かしとして適用します。ソースと宛先が同じなので、上書き属性は yes に設定され、ColdFusion はソースファイルを上書きします。---> <cfpdf action="addWatermark" source="Book.pdf" destination="Book.pdf" overwrite="yes" image="#myImage#">
ColdFusion 画像について詳しくは、『ColdFusion アプリケーションの開発』の ColdFusion 画像の作成と操作を参照してください。
addfooter このアクションは、PDF ドキュメントにフッターを追加する場合に使用します。次のコードのように、PDF ドキュメントが存在するソースと、フッターのある新規 PDF ドキュメントの保存先を指定します。
<cfpdf action = "addfooter" source = "../myBook.pdf" destination = "../myBookwithfooter.pdf" image = "adobelogo.JPG" // この属性を使用してフッターに画像を追加 align = "right"> // デフォルトの配置は中央
また、フッターに挿入する画像やテキストに加え、align、bottommargin、leftmargin、numberformat、opacity などの様々な属性も指定できます。
addheader このアクションは、PDF ドキュメントにヘッダーを追加する場合に使用します。次のコードのように、PDF ドキュメントのソースおよび保存先を指定し、ヘッダーに挿入するテキストまたは画像を指定します。
<cfpdf action = "addheader" source = "../myBook.pdf" destination = "../myBookwithheader.pdf" text = "Adobe" align = "left">
- deletePages アクション 指定した PDF ドキュメントからページを削除するには、deletePages アクションを使用します。次のように、単一のページ、ページ範囲またはカンマ区切りリストを指定できます。
<cfpdf action="deletePages" source="c:\myBook.pdf" pages="1,16-32,89,100-147" destination="myLittleBook.pdf">
- extracttext extracttext アクションは、次のコードのように、PDF ドキュメント内の指定されたページ番号からのすべての単語を抽出する場合に使用します。
<cfpdf action = "extracttext" source = "../myBook.pdf" pages = "5-20, 29, 80" destination = "../adobe/textdoc.txt"
- extractimage extractimage アクションは、次のコードのように、PDF ドキュメント内の指定されたページ番号からすべての画像を抽出する場合に使用します。
<cfpdf action = "extractimage" source = "../myBook.pdf" pages = "1-200" destination = "..\mybookimages" imageprefix = "mybook">
抽出された画像は、destination 属性で指定したディレクトリに保存されます。抽出する画像に追加する接頭辞(imageprefix)を指定できます。これを指定しない場合は、システムによって追加されます。
PDF ドキュメントに関する情報(作成者、タイトル、作成日など)を取得するには、アクションを使用します。次のように、ファイルに関するデータを含む構造体変数の名前を指定します。
<cfpdf action="getInfo" source="myBook.pdf" name="PDFInfo"> <p><cfoutput>#PDFInfo.title#</cfoutput></p> <p><cfoutput>#PDFInfo.author#</cfoutput></p> <p><cfoutput>#PDFInfo.keywords#</cfoutput></p> <p><cfoutput>#PDFInfo.created#</cfoutput></p>
情報要素の完全なリストを表示するには、次のように cfdump タグを使用します。
<cfdump var="#PDFInfo#">
パスワードで保護されている PDF ドキュメントのアクセス許可を表示するには、(オーナーパスワードではなく)ユーザーパスワードを指定します。オーナーパスワードを指定した場合、アクセス許可はすべて Allowed に設定されます。
PDF ドキュメントの品質の低下
optimize アクションは、PDF ドキュメント内の画像をダウンサンプルし、未使用のオブジェクトを破棄する場合に使用します。
optimize PDF ドキュメント内の画像をダウンサンプルするには、algos 属性を、bilinear、bicubic および nearest_neighbour の値とともに使用します。次のコードでは、画像のダウンサンプリング後の PDF が生成されます。
<cfpdf action = "optimize" algo = "bicubic" source "..\myBook.pdf" name = #mybook#>
また、optimize アクションで次の属性を使用して、コメント、JavaScript、添付ファイル、ブックマーク、メタデータなどの未使用のオブジェクトを PDF ドキュメントから破棄することもできます。
<cfpdf action = "optimize" noJavaScripts noThumbnails noBookmarks noComments noMetadata noFileAttachments noLinks nofonts>
PDF ドキュメント内のページの変換
1 つのページのサイズを拡大または縮小し、PDF ドキュメント内の複数のページの位置や回転の値を指定できます。
transform transform アクションには、ページのサイズ(hscale、vscale)、位置(position)および回転(rotation)を定義する 4 つの属性があります。次のコードに使用法を示します。
<cfpdf action = "transform" required source = "..\myBook.pdf" optional destination = "..\new\myBook.pdf"> hscale = ".5" vscale = ".15" position = "8, 10" rotation = "180">
回転の値は、0、90、180、270 の段階で指定する必要があります。その他の値を指定すると、エラーが発生します。
PDF ファイルの情報要素
次の表に、getinfo アクションで取得できる情報要素を示します。
要素 |
例 |
説明 |
---|---|---|
Application |
Acrobat PDFMaker 7.0.7 for Word |
PDF ドキュメントの作成に使用されたアプリケーションです。この値は読み取り専用です。 |
Author |
Harper Lee |
PDF ドキュメントの作成者です。setInfo アクションでテキスト文字列を指定できます。 |
CenterWindowOnScreen |
空の文字列 |
PDF ドキュメントを最初に開いたときの表示設定です。この設定を変更するには、DDX 要素 InitialViewProfile とともに processddx アクションを使用します。 |
ChangingDocument |
Not Allowed |
PDF コンテンツの編集に関して割り当てられたアクセス許可です。この設定を変更するには、protect アクションとともに permissions 属性を使用します。 |
Commenting |
Allowed |
PDF ドキュメントへのコメントの追加に関して割り当てられたアクセス許可です。この設定を変更するには、protect アクションとともに permissions 属性を使用します。 |
ContentExtraction |
Allowed |
PDF ドキュメントからのコンテンツの抽出に関して割り当てられたアクセス許可です。この設定を変更するには、protect アクションとともに permissions 属性を使用します。 |
CopyContent |
Allowed |
PDF ドキュメントからのコンテンツのコピーに関して割り当てられたアクセス許可です。この設定を変更するには、protect アクションとともに permissions 属性を使用します。 |
Created |
D:20061121155226-05'00' |
システムによって生成された、PDF ドキュメントの作成日です。setInfo アクションでテキスト文字列を指定できます。 |
DocumentAssembly |
Not Allowed |
他の PDF ドキュメントとのマージに関して割り当てられたアクセス許可です。この設定を変更するには、protect アクションとともに permissions 属性を使用します。 |
Encryption |
Password Security |
PDF ファイルがパスワードで保護されているかどうかを示します。暗号化アルゴリズムを変更する場合、またはパスワードを追加する場合は、protect アクションを使用します。 |
FilePath |
C:¥ColdFusion¥wwwroot¥lion¥myDoc.pdf |
PDF ファイルの絶対パス名です。この値は読み取り専用です。 |
FillingForm |
Allowed |
フォームフィールドへのデータ入力に関して割り当てられたアクセス許可です。この設定を変更するには、protect アクションとともに permissions 属性を使用します。 |
FitToWindow |
空の文字列 |
PDF ドキュメントを最初に開いたときの表示設定です。この設定を変更するには、DDX 要素 InitialViewProfile とともに processddx アクションを使用します。 |
HideMenubar |
空の文字列 |
PDF ドキュメントを最初に開いたときの表示設定です。この設定を変更するには、DDX 要素 InitialViewProfile とともに processddx アクションを使用します。 |
HideToolbar |
空の文字列 |
PDF ドキュメントを最初に開いたときの表示設定です。この設定を変更するには、DDX 要素 InitialViewProfile とともに processddx アクションを使用します。 |
HideWindowUI |
空の文字列 |
PDF ドキュメントを最初に開いたときの表示設定です。この設定を変更するには、DDX 要素 InitialViewProfile とともに processddx アクションを使用します。 |
Keywords |
marketing,sales,production |
PDF ドキュメントの検索用キーワードです。setInfo アクションでキーワードのカンマ区切りリストを指定できます。 |
Language |
EN-US |
PDF ドキュメントのソースファイルの作成に使用された言語バージョンです。この値は読み取り専用です。 |
Modified |
D:20061121155226-06'00' |
システムによって生成された、PDF ファイルの最終変更日のタイムスタンプです。setInfo アクションでテキスト文字列を指定できます。 |
PageLayout |
OneColumn |
PDF ドキュメントを最初に開いたときの表示設定です。この設定を変更するには、DDX 要素 InitialViewProfile とともに processddx アクションを使用します。 |
Printing |
Allowed |
ドキュメントの印刷に関して割り当てられたアクセス許可です。この設定を変更するには、protect アクションとともに permissions 属性を使用します。 |
Producer |
Acrobat Distiller 7.0.5 (Windows) |
PDF ドキュメントの生成に使用された Acrobat Distiller のバージョンです。この値は読み取り専用です。 |
Properties |
空の文字列 |
この値は読み取り専用です。 |
Secure |
Not Allowed |
PDF ドキュメントがパスワードで保護されているかどうかを示す表示設定です。 |
ShowDocumentsOption |
空の文字列 |
PDF ドキュメントを最初に開いたときの表示設定です。この設定を変更するには、DDX 要素 InitialViewProfile とともに processddx アクションを使用します。 |
ShowWindowsOption |
空の文字列 |
PDF ドキュメントを最初に開いたときの表示設定です。この設定を変更するには、DDX 要素 InitialViewProfile とともに processddx アクションを使用します。 |
Signing |
Allowed |
PDF ドキュメントへの電子署名の追加に関して割り当てられたアクセス許可です。この設定を変更するには、protect アクションとともに permissions 属性を使用します。 |
Subject |
製品マーケティング |
PDF ドキュメントに割り当てられた題名です。setInfo アクションでテキスト文字列を指定できます。 |
Title |
第 1 章 : はじめに |
PDF ドキュメントに割り当てられたタイトルです。setInfo アクションでテキスト文字列を指定できます。 |
TotalPages |
25 |
PDF ドキュメントの総ページ数です。この値は読み取り専用です。 |
Trapped |
空の文字列 |
PDF ドキュメントにトラッピングを適用するかどうかを示します。トラッピングとは、隣合う 2 つインク色の隙間をなくすための印刷技術です。setInfo アクションでテキスト文字列を指定できます。 |
Version |
1.6 |
PDF ドキュメントの作成に使用された Adobe PDF Generator のバージョンです。この設定を変更するには、write アクションとともに version 属性を使用します。詳細については、「PDF バージョン」を参照してください。 |
- merge アクション 複数の PDF ドキュメント、または PDF ソースファイルのページを 1 つの出力ファイルにマージするには、merge アクションを使用します。次のコードは、指定したディレクトリに存在するすべての PDF ファイルをマージする方法を示しています。
<cfpdf action="merge" directory="c:\myPDFfiles" destination="oneBigFile.pdf" overwrite="yes">
デフォルトでは、タイムスタンプの降順でファイルがマージされます。次のコードは、ソースファイルをファイル名の降順でマージする方法を示しています。
<cfpdf action="merge" directory="c:\book" order="name" ascending="yes" destination="c:\book\output1.pdf" overwrite="yes">
この方法は、ソースファイルに Chap0.pdf、Chap1.pdf、Chap2.pdf のような名前が付いている場合に便利です。デフォルトでは、指定したディレクトリ内で有効な PDF ドキュメント以外のファイルが検出された場合でも、マージ処理は継続されます。指定したディレクトリに有効な PDF ドキュメント以外のファイルが含まれている場合にマージを停止するには、次のように stopOnError 属性を yes に設定します。
<cfpdf action="merge" directory="c:\bookfiles" destination="book.pdf" overwrite="yes" order="name" ascending="yes" keepBookmark="yes" stopOnError="yes">
ドキュメント内の特定のページから PDF ファイルを作成するには、pages 属性とともに source 属性を使用します。次のコードは、ソースドキュメントの 1 ~ 5 ページ目からファイルを作成する方法を示しています。
<cfpdf action="merge" source="myBigBook.pdf" pages="1-5" destination="myShortBook.pdf" overwrite="yes">
複数のファイルを 1 つのドキュメントにマージするには、次のようにファイルの絶対パス名をカンマ区切りリストで指定します。
<cfpdf action="merge" source="c:\PDFdocs\myBook\Chap1.pdf, c:\PDFdocs\myBook\Chap2.pdf,c:\PDFdocs\myBook\Chap3,pdf" destination="myBook.pdf" package = "true" overwrite="yes">
これで、package = "true" 属性を merge アクションとともに使用して PDF パッケージを作成できるようになります。ファイルのマージ順をさらに詳細に指定したり、異なる場所にあるファイルをマージしたり、複数の PDF ファイルからページを抽出したりするには、merge アクションとともに cfpdfparam タグを使用します。PDF ファイルのマージの詳細については、『ColdFusion アプリケーションの開発』の PDF ドキュメントの組み立てを参照してください。
cfpdf action="merge"cfpd および package="yes" を指定した場合は、すべてのファイル形式をソースとして使用できます。次のコード例では、ソースとして ZIP および JPEG ファイル形式を使用しています。
<cfpdf action="merge" package="yes" destination="./myBook/adobetest.pdf" overwrite="yes"> <cfpdfparam source="./inputFiles/c.zip" > <cfpdfparam source="./inputFiles/d.jpg" > </cfpdf>
- processddx アクション Document Description XML(DDX)命令を処理して複数の PDF ファイルをマージするには、proccessddx アクションを使用します。DDX とは、Adobe LiveCycle Assembler で使用される宣言型マークアップ言語です。DDX 命令を使用すると高度なタスクを実行できます。例えば、目次ページ、ヘッダー、フッター、自動ページ番号、テキスト文字列の透かしなどを PDF ドキュメントに追加できます。ColdFusion には、一部の LiveCycle Assembler 機能が組み込まれています。以下の節にある表を参照して、ColdFusion で実行できるタスクを確認し、LiveCycle Assembler を購入する必要があるかどうかを検討してください。
DDX の完全なシンタックスについては、『Adobe LiveCycle Assembler Document Description XML Reference』を参照してください。
サポートされる DDX 要素
次の表に、ColdFusion でサポートされる DDX 要素を示します。
About |
Author |
Background |
Center |
DatePattern |
DDX |
DocumentInformation |
DocumentText |
Footer |
Header |
InitialViewProfile |
Keyword |
Keywords |
Left |
MasterPassword |
Metadata |
NoBookmarks |
OpenPassword |
PageLabel |
Password |
PasswordAccessProfile |
PasswordEncryptionProfile |
PDF (「注意」を参照) |
PDFGroup |
Permissions |
Right |
StyledText |
StyleProfile |
Subject |
TableOfContents |
TableOfContentsEntryPattern |
TableOfContentsPagePattern |
Title |
Watermark |
|
|
ColdFusion では、PDF 要素の certification および mergeLayers 属性はサポートされていません。
サポートされない DDX 要素
ColdFusion 11 の新機能 - 以下のサポートされない DDX 要素は、ColdFusion 11 Enterprise Edition でサポートされます。 |
ColdFusion 10 以前を使用している場合、以下の DDX 要素は ColdFusion に含まれていません。
ArtBox |
AttachmentAppearance |
Bookmarks |
BlankPage |
BleedBox |
Comments |
Description |
FileAttachments |
FilenameEncoding |
LinkAlias |
Links |
NoBackgrounds |
NoComments |
NoFileAttchments |
NoFooters |
NoForms |
NoHeaders |
NoLinks |
NoPageLabels |
NoThumbnails |
NoWatermarks |
NoXFA |
PageMargins |
PageSize |
PageRotation |
PageOverlay |
PageUnderlay |
PDFsFromBookmarks |
Transform |
TrimBox |
簡単な DDX 命令
DDX 命令は任意のテキストエディタで作成でき、DDX の拡張子を付けてファイルに保存できます。次のコードは、複数のドキュメントをマージし、ソース PDF ドキュメントのブックマークを使用して目次を生成する DDX 命令の例です。
<?xml version="1.0" encoding="UTF-8"?> <DDX xmlns="http://ns.adobe.com/DDX/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ns.adobe.com/DDX/1.0/ coldfusion_ddx.xsd"> <PDF result="Out1"> <PDF source="Title"/> <TableOfContents/> <PDF source="Doc1"/> <PDF source="Doc2"/> <PDF source="Doc3"/> </PDF> </DDX>
ColdFusion での DDX 命令の処理
以下のコードを使用すると、ColdFusion で DDX 命令が処理されます。
<! --- 以下のコードは DDX ファイルが存在し、DDX 命令が有効であることを検証します。---> <cfif IsDDX("Book.ddx")> <! --- 以下のコードは DDX ファイル内の PDF ソース変数に PDF ソースファイルをマッピングします。---> <cfset inputStruct=StructNew()> <cfset inputStruct.Title="Title.pdf"> <cfset inputStruct.Doc1="Chap1.pdf"> <cfset inputStruct.Doc2="Chap2.pdf"> <cfset inputStruct.Doc3="Chap3.pdf"> <! --- 以下のコードは DDX ファイル内の PDF 結果変数に PDF 出力ファイルをマッピングします。---> <cfset outputStruct=StructNew()> <cfset outputStruct.Out1="output.pdf"> <! --- 以下のコードは Book.ddx ファイルで DDX 命令を処理して結合されたドキュメントを生成します。---> <cfpdf action="processddx" ddxfile="Book.ddx" inputfiles="#inputStruct#" outputfiles="#outputStruct#" name="ddxVar"> <cfelse> <p>DDX 命令は有効ではありません。</p> </cfif> <! ---以下のコードは成功または失敗メッセージを表示します。---> <cfoutput>#ddxVar.Out1#</cfoutput>
name 属性は、処理が成功したかどうかを確認するための変数を定義します。成功または失敗のメッセージを表示するには、上の例のように cfoutput タグを使用します。また、構造体を表示するには、次の例のように cfdump タグを使用します。
<cfdump var="#ddxVar#">
このコードは、構造体で指定されている出力ファイルごとに次の情報を返します。
- "Successful":ファイルが正常にマージされた場合。
- "Reason for failure":ファイルが正常にマージされず、失敗の理由が判明している場合。
- "Failure":ファイルが正常にマージされず、失敗の理由が不明の場合。
DDX ファイルまたは一連の DDX 命令が有効であるかどうかを検証するには、IsDDX 関数を使用します。
詳細な例については、『ColdFusion アプリケーションの開発』の PDF ドキュメントの組み立てを参照してください。
protect アクション PDF 出力ファイルのパスワードによる保護、アクセス許可の設定または PDF 出力ファイルの暗号化を行うには、protect アクションを使用します。protect アクションを使用する場合は、newUserPassword または newOwnerPassword を設定します(両方を設定する場合は、異なるパスワードを指定する必要があります)。ドキュメントにユーザーパスワードを割り当てると、その PDF ドキュメントを開くときに、すべてのユーザーがこのパスワードを使用する必要があります。次のコードは、PDF ドキュメントにユーザーパスワードを追加します。
<cfpdf action="protect" source="Finances.pdf" destination="myFinances.pdf" newUserPassword="keepOut">
出力ファイルのアクセス許可を設定するには、newOwnerPassword を設定します。PDF ファイルにアクセスする際にオーナーパスワードを入力したユーザーは、そのファイルのオーナーと見なされます。次の例は、新しいオーナーパスワードを設定する方法を示しています。
<cfpdf action="protect" encrypt="AES_128" source="Book.pdf" destination="MysteryBook.pdf" overwrite="yes" newOwnerPassword="pssst" permissions="AllowDegradedPrinting">
この例では、アクセス許可が AllowDegradedPrinting に設定されているので、ユーザーは 150 DPI でドキュメントを印刷できますが、その他のアクションはすべて禁止されます。例えば、ユーザーがファイルを削除しようとすると、入力されたパスワードが正しくないことを示すエラーメッセージ、またはそのアクションが許可されていないことを示すエラーメッセージが表示されます。ColdFusion ではアクセス許可が保持されません。newUserPassword 属性を追加した場合は、アクセス許可も明示的に設定する必要があります。
myVar を使用するには、パスワードとして newownerpw を指定します。
PDF ドキュメントのパスワード
PDF ドキュメントには、ユーザーパスワードとオーナーパスワードという 2 種類のパスワードを設定できます。次の表で、2 種類の ColdFusion パスワードと、それらに相当する Acrobat パスワードについて説明します。
ColdFusion パスワード |
相当する Acrobat パスワード |
説明 |
---|---|---|
ユーザーパスワード |
ドキュメントを開くパスワード、ユーザーパスワード |
その PDF ドキュメントを開くときに、すべてのユーザーが指定されたパスワードを入力する必要があります。ユーザーパスワードを入力した場合、PDF ドキュメント内で制限されている機能を変更することはできません。 |
オーナーパスワード |
権限パスワード、マスタパスワード |
このパスワードを入力したユーザーは、PDF ドキュメント内の機能へのアクセスを制限することができます。 |
PDF を保護すると、指定したパスワードに変更されます。ColdFusion の変数に保存されているパスワードは、指定されたパスワードに更新されます。ただし、両方のパスワードを指定した場合は、オーナーパスワードが使用されます。PDF を保護するには、次のように設定します。
<cfpdf action="protect" source="myVar" password="oldpassword" permissions="none" newuserpassword="newuserpw" newownerpassword="newownerpw">
PDF のすべてのプロパティを取得するには、次のように設定します。
<cfpdf action="info" source="myVar" name="info">
ユーザーに許可されているプロパティのみを取得するには、次のように設定します。
<cfpdf action="info" source="myVar" password=" newuserpw" name="info">
PDF ドキュメントのアクセス許可
次の表に、オーナーが PDF ドキュメントに対して設定できるアクセス許可を示します。
アクセス許可 |
説明 |
---|---|
All |
この PDF ドキュメントの機能は制限されていません。 |
AllowAssembly |
ユーザーはこの PDF ドキュメントを他のドキュメントにマージできます。 |
AllowCopy |
ユーザーはこのファイルのコンテンツ(テキスト、画像など)をコピーできます。この設定は、thumbnail アクションを使用してサムネール画像を生成する場合に必須です。 |
AllowDegradedPrinting |
ユーザーはこのドキュメントを低解像度(150 DPI)で印刷できます。 |
AllowFillIn |
ユーザーはこの PDF フォームのフィールドにデータを入力できます。ユーザーは PDF フォームに電子署名を追加できます。 |
AllowModifyAnnotations |
ユーザーはこの PDF ドキュメントのコメントを追加または変更できます。 |
AllowModifyContents |
ユーザーはこのファイルのコンテンツを変更できます。ユーザーはこの PDF ドキュメントを他のドキュメントにマージできます。 |
AllowPrinting |
ユーザーはこのドキュメントを高解像度で印刷できます。この設定は、cfprint タグを使用する場合に必須です。 |
AllowScreenReaders |
ユーザーはこの PDF ドキュメントからコンテンツを抽出できます。 |
AllowSecure |
ユーザーはこの PDF ドキュメントに電子署名を追加できます。 |
None |
ユーザーはこのドキュメントの表示のみを行えます。 |
PDF ドキュメントの暗号化
encrypt 属性は、パスワードで保護されているドキュメントを開くための暗号化方式を設定します。デフォルトでは、PDF ファイルの暗号化には RC4 128 ビットの暗号化アルゴリズムが使用されます。暗号化アルゴリズムを変更するには、protect アクションとともに encrypt 属性を使用します。次のコードは、PDF 出力ファイルを AES アルゴリズムで暗号化します。
<cfpdf action="protect" encrypt="AES_128" source="Book.pdf" destination="MysteryBook.pdf" overwrite="yes" newOwnerPassword="pssst" permissions="AllowDegradedPrinting">
ColdFusion は、次の暗号化アルゴリズムをサポートします。
暗号化アルゴリズム |
互換性 |
説明 |
---|---|---|
AES_128 |
Adobe Acrobat 7.0 以降 |
Advanced Encryption Standard (AES) では、Rijndael アルゴリズムと呼ばれる、128 ビットのデータブロックを処理可能な対称ブロック暗号化方式が定義されています。これは最高レベルの暗号化方式です。
|
RC4_128M |
Adobe Acrobat 6.0 以降 |
RC4 では、インターネットトラフィックを保護する Secure Sockets Layer (SSL) や、ワイヤレスネットワークを保護する WEP などのアルゴリズムに適用可能な RSA Security ソフトウェアストリーム暗号化方式が定義されています。
|
RC4_128 |
Adobe Acrobat 5.0 以降 |
RC4 128 ビットの暗号化方式です。ユーザーはこの暗号化アルゴリズムを使用してドキュメントのコンテンツを暗号化することはできますが、ドキュメントのメタデータを暗号化することはできません。 |
RC4_40 |
Adobe Acrobat 3.0 以降 |
RC4 40 ビットの暗号化方式です。これは最低レベルの暗号化方式です。 |
None |
- |
ドキュメントは暗号化されません。 |
ドキュメントのメタデータはインターネット検索で使用されます。検索エンジンは、メタデータが暗号化されている PDF ドキュメントを検索できません。新しいバージョンの Acrobat でサポートされている方式を使用して暗号化された PDF ドキュメントを以前のバージョンの Acrobat で開くことはできません。たとえば、AES 128 暗号化を指定した場合、Acrobat 6.0 以前でそのドキュメントを開くことはできません。
- read アクション ソース PDF ドキュメントを name 変数に読み込むには、次のコードのように read アクションを使用します。
<cfif IsPDFFile("Book.pdf")> <cfpdf action="read" source="Book.pdf" name="myBook"> ... </cfif>
- removeWatermark アクション PDF ドキュメントまたはドキュメント内の指定したページから透かしを削除するには、removewatermark アクションを使用します。次の例では、PDF ドキュメントの最初のページから透かしを削除し、出力を新規ファイルに書き込みます。
<cfpdf action="removeWatermark" source="Book.pdf" pages="1" destination="newBook.pdf" overwrite="yes">
- removeheaderfooter アクション PDF ドキュメント、またはドキュメント内の指定されたページからヘッダーおよびフッターを削除するには、このアクションを使用します。次の例では、ドキュメント全体からヘッダーおよびフッターを削除します。
<cfpdf action = "removeheaderfooter" source="..\mybook.pdf" destination = "new.pdf">
- setInfo アクション PDF ドキュメントに関する情報を指定してドキュメントとともに保存するには、setinfo アクションを使用します。関連情報を含む構造体を作成します。cfpdf タグの info 属性で、その構造体を参照します。次のコードは、setInfo アクションを使用して変更可能な要素を示しています。
<cfset PDFinfo=StructNew()> <cfset PDFinfo.Title="Make Way for Ducklings"> <cfset PDFinfo.Author="Donald Duck"> <cfset PDFinfo.Keywords="Huey,Dewy,Louie"> <cfset PDFinfo.Subject="Ducks"> <cfpdf action="setInfo" source="chap1.pdf" info="#PDFinfo#" destination="meta1.pdf" overwrite="yes">
- thumbnail アクション ソース PDF ドキュメントからサムネール画像を生成するには、thumbnail アクションを使用します。
サムネールファイルの保存先ディレクトリを指定しない場合は、CFM ページが存在するディレクトリ内にサムネール用のディレクトリが作成されます。ソースとしてファイル名を指定した場合、サムネールディレクトリの名前は、ソースファイルの名前に _Thumbnails を追加したものになります。たとえば、次のコードは、myBook.pdf の各ページからサムネール画像を生成して、myBook_thumbnails というディレクトリに保存します。
<cfpdf action="thumbnail" source="myBook.pdf">
CFM ページが c:¥myProject¥genThumbnails.cfm ディレクトリに存在する場合、サムネールディレクトリのパス名は c:¥myProject¥myBook_thumbnails になります。デフォルトでは、サムネールファイルは JPEG 形式で生成され、画像のサイズはオリジナルの 25 %に縮小されます。
ソースドキュメント内の個々のページを指定してサムネールを生成できます。また、サムネールのサイズ、解像度、出力形式 (JPEG、PNG、または TIFF)、サムネールファイル名に使用する接頭辞を変更することもできます。次のコードは、ソースドキュメントの最初のページからオリジナルサイズの 50% に縮小した低解像度のサムネールを生成します。
<cfpdf action="thumbnail" source="myBook.pdf" pages="1" destination="c:\myBook\images" imagePrefix="Cover" format="png" scale="50" resolution="low">
完全な出力ファイルのパス名は次のとおりです。
c:¥myBook¥images¥Cover_page_1.png
サムネール画像を生成するには、ソースドキュメントのアクセス許可に AllowCopy が含まれている必要があります。詳細については、cfpdf の「PDF ドキュメントのアクセス許可」を参照してください。
ColdFusion 9 で、次の新しい属性が thumbnail アクションに導入されました。
hires:この属性を true に設定すると、ページから高解像度の画像を抽出できます。この属性は、ドキュメントに高解像度の画像が含まれていて、それらの画像の解像度を維持したい場合に便利です。
例:
<cfpdf action="thumbnail" source="./WORK/myBook.pdf" destination="./WORK/Testing_CFPDF" overwrite="true" hires="yes">
- overridepage:この属性を true に設定すると、PDF のページサイズではなく、そのページ内に存在する画像のサイズに準拠したサムネールが生成されます。画像が存在しない場合、サイズはページの最大サイズに設定されます。
compresstiffs:サムネール画像のサイズを圧縮するには、この属性を使用します。属性の名前が示唆しているように、この属性は TIFF 形式に対してのみ有効です。次に例を示します。
<cfpdf action="thumbnail" source="C:\WORK\myBook.pdf" destination="C:\WORK\Testing_CFPDF" overwrite="true" hires="yes" format="tiff" compresstiffs="yes">
- maxscale:サムネール画像の最大スケールに整数値を指定するには、この属性を使用します。
- maxlength:サムネール画像の最大長の整数値を指定するには、この属性を使用します。
maxbreadth:サムネール画像の最大幅の整数値を指定するには、この属性を使用します。
次の例は、maxscale、maxlength および maxbreadth の使用方法を示しています。
メモ:通常、maxscale 属性を使用する場合は、scale 属性の値を 100 に設定します。
- write アクション ソース PDF ドキュメント、またはメモリに変数として格納されている PDF ドキュメントをファイルに書き込むには、write アクションを使用します。次のコードは、メモリに格納されている PDF ファイルを別の PDF バージョンに変換し、出力を新規ファイルに書き込みます。
<cfpdf action="read" source="Book.pdf" name="myBook"> <cfpdf action="write" source="myBook" destination="myBook1.pdf" version="1.4">
これで、write アクションで name 属性または destination 属性のいずれかを使用できるようになります。name 属性は、PDF ドキュメント変数として値を取ります。たとえば、上記のコードを次のように記述することができます。
<cfpdf action="read" source="Book.pdf" name="myBook"> <cfpdf action="write" source="myBook" name=#myBook# version="1.4">
新規の encodeall 属性では、ソース内のエンコードされていないストリームがすべてエンコードされます。ただし、LZW のようなダムエンコーディングと、flate のようなエンコーディングとが区別されないので、エンコードされていないストリームのみが flate エンコードされます。
これで、フォント管理画面を使用してサムネールフォントを登録できるようになります。
PDF バージョン
以前のバージョンの Acrobat または Adobe Reader を使用しているユーザーがファイルを開けるようにするには、PDF バージョンを変更します。次の表に、PDF のバージョンと Acrobat および Adobe Reader のバージョンの互換性を示します。
PDF バージョン |
互換性 |
---|---|
1.1 |
Acrobat および Adobe Reader 2 |
1.2 |
Acrobat および Adobe Reader 3 |
1.3 |
Acrobat および Adobe Reader 4 |
1.4 |
Acrobat および Adobe Reader 5 |
1.5 |
Acrobat および Adobe Reader 6 |
1.6 |
Acrobat および Adobe Reader 7 |
Web での表示を高速化するために PDF ドキュメントを線形化するには、次のように saveOption 属性を linear に設定します。
<cfpdf action="write" source="myBook" destination="myBook1.pdf" saveOption="linear" overwrite="yes">
PDF フォームのインタラクティブ機能を維持する場合や、PDF ドキュメントに電子署名を追加できるようにする場合には、saveOption で linear を指定しないでください。電子署名を許可するには、次のように saveOption 属性を incremental に設定します。
<cfpdf action="write" source="myDraft" destination="mySignedDoc.pdf" saveOption="incremental" overwrite="yes">
Acrobat で作成されたフォームからインタラクティブ機能を除去するには、flatten 属性を使用します。
<cfpdf action="write" source="myAcrobatForm.pdf" destination="myFlatForm.pdf" flatten="yes" overwrite="yes">
ColdFusion では、Adobe LiveCycle で作成されたフォームのフラット化はサポートされていません。LiveCycle および Acrobat で作成されたフォームの詳細については、『ColdFusion アプリケーションの開発』の ColdFusion での PDF フォームの操作を参照してください。
例
次の例では、PDF ドキュメント内のページからサムネール画像を生成して、それらの画像を PDF ドキュメント内のページにリンクします。
<h3>PDF サムネールのデモ</h3> <! --- PDF ドキュメントの名前に変数を作成します。---> <cfset mypdf="myBook"> <cfset thisPath=ExpandPath(".")> <! --- getInfo アクションを使用して PDF ドキュメントの合計ページ数を取得します。---> <cfpdf action="getInfo" source="#mypdf#.pdf" name="PDFInfo"> <cfset pageCount="#PDFInfo.TotalPages#"> <! ---PDF ソースドキュメントの各ページのサムネール画像を生成し、PDF ソース名に "thumbnails" という単語を追加した web ルートにディレクトリ(まだない場合)を作成し、そのディレクトリにサムネール画像を保存します。---> <cfpdf action="thumbnail" source="#mypdf#.pdf" overwrite="yes" destination="#mypdf#_thumbnails" scale=60> <! ---サムネールディレクトリ内の画像をループスルーし、各画像から PDF ドキュメントの対応するページへのリンクを生成します。---> <cfloop index="LoopCount" from ="1" to="#pageCount#" step="1"> <cfoutput> <! --- サムネール画像をクリックして PDF ドキュメントのページに移動します。---> <a href="#mypdf#.pdf##page=#LoopCount#" target="_blank"> <img src="#mypdf#_thumbnails/#mypdf#_page_#LoopCount#.jpg"></a> </cfoutput> </cfloop>
PDF ドキュメントのアーカイブ
ColdFusion 11 への導入:action type="archive" を使用して、ISO の PDF/A 標準に基づいて PDF ファイルをアーカイブします。PDF/A は、国際標準化機構(ISO)が管理する一連の PDF ベースの標準に含まれる標準の 1 つです。この標準は、電子ドキュメントの長期保存を可能にするために策定されました。最終版のドキュメントを独立したドキュメントとして保存するための PDF ドキュメントの作成、表示および印刷の仕様を提供します。 この標準は、アーカイブ方針やアーカイブシステムの目的を定義するものではなく、時間が経過してもドキュメントの外観の再現が可能な PDF ファイルの「プロファイル」を特定します。このプロファイルでは、ファイルに含める必要のある内容を指定する一方で、長期間のアーカイブに不適切な機能を禁止します。
<! ---- Create an archived pdf from source pdf ---à <cftry> <cfpdf action="archive" source="#sourcefilename#" destination="#destinationfilename#" overwrite="true" /> <cfcatch> <cfoutput>#cfcatch.detail#</cfoutput><br><br> </cfcatch> </cftry>
ドキュメントのデジタル署名
ColdFusion 11 への導入:action ="sign"、"unsign"、"validatesignature"、"readsignaturefields" を使用して、それぞれデジタル署名の作成および削除、ドキュメントの署名の検証および署名フィールドの読み取りを行います。
- action ="sign" の場合は、次の属性を使用できます。
- keystore 属性(必須):キーストアファイルの場所。例えば、C:\OpenSSL\bin\keystore.jks のように指定します。
- keystorepassword 属性(必須):キーストアのパスワード。
- keyalias 属性(オプション):証明書と秘密キーをキーストアに保存するために使用するキーのエイリアス。指定しない場合は、キーストアの最初のエントリがエイリアスとして使用されます。
- keypassword 属性(オプション):秘密キーのパスワード。指定しない場合は、keystorepassword が使用されます。
- author 属性(オプション):true の場合は、作成者が指定された署名が生成されます。false の場合は、通常の署名が生成されます。
<! ---- Sign a specific pdf by creating a signature field and signing it with authoured signature --> <cfpdf action="sign" source="#inputfilepath##inputfilename#" destination="#signedfilepath##signedfilename#" keystore="#certpath#cert.pfx" keystorepassword="certpass" overwrite="true" pages="1" height="100" width="100" position="100,100" author="false" />
- action ="sign" および "unsign" の場合は、次の属性を使用できます。
- signaturefieldname 属性(オプション):ユーザーが署名する既存のフィールドまたは署名なしにする必要のある署名フィールドの完全修飾名。
<! ----入力 pdf の特定の署名フィールドに署名します----> <cfpdf action="sign" source=”#inputfilepath##inputfilename#" destination="#signedfilepath##signedfilename#" keystore="#certpath#cert.jks" keystorepassword="password" overwrite="true" author="true" signaturefieldname="sign_me"/>
- action ="unsign" の場合は、次の属性を使用できます。
- Unsignall 属性(オプション):true の場合は、ソースドキュメントのすべての署名フィールドが署名なしになります。
<cfpdf action="unsign" source="../cfpdf_normalPDFSign.pdf" destination="../results/cfpdf_normalPDFSign.pdf" unsignall="true" overwrite="true">
- action ="validatesignature" の場合は、次の属性を使用できます。
- Name 属性:この操作の結果として生じる構造体が保存されます。この属性は 2 つの要素で構成されます。1 つはすべての署名が有効かどうかを示す boolean フィールドで、もう 1 つは、無効なすべての署名の名前で構成される配列リストです。
<cfpdf action="validatesignature" source="../cfpdf_normalPDFSign.pdf" name="pdfInfo"> <cfoutput>#pdfInfo.SUCCESS#</cfoutput>
- action ="readsignaturefields" の場合:
- すべての署名フィールドを読み取って、属性名で指定される変数のクエリオブジェクトを返します。このクエリオブジェクトには、 次の 5 つの列があります。
a)Signed - 署名フィールドの完全修飾名。
b)Authored - このフィールドに作成者署名を含めることができるかどうかを示します。
c)Can_Be_Signed - このフィールドに署名できるかどうかを示します。
d)Can_Be_Authored - このフィールドが署名済みであるかどうかを示します。
e)Visible - このフィールドが表示可能かどうかを示します。
<! ---変数の入力 pdf の署名フィールドに関する情報を読んで廃棄します---> <cfpdf action="readsignaturefields" source="#filepath##inputfilename#" name="signinfo" password="owner" /> <cfdump var=”#signinfo#”/>
例
addAttachments
<cfset sourcefile="#ExpandPath('file.pdf')#"> <cfset destinationfile="#ExpandPath('file_result.pdf')#"> <cftry> <cfpdf action="addAttachments" source="#sourcefile#" destination="#destinationfile#" overwrite="true"> <cfpdfparam source="#ExpandPath('file1.txt')#" filename="attachment1.txt" Encoding="ASCII" description="file attachment one"> <cfpdfparam source="#ExpandPath('file2.txt')#" filename="attachment2.txt" Encoding="UTF-16" description="file attachment one"></cfpdfparam> </cfpdf> <cfcatch type="any"> <cfdump var="#cfcatch#"> </cfcatch> </cftry>
出力
addFooter
<! ---フッターとしての画像---> <cfset sourcefile="#ExpandPath('file.pdf')#"> <cfset destfile="#ExpandPath('file_footer.pdf')#"> <cfpdf action="addfooter" source="#sourcefile#" destination="#destfile#" image="adobe.png" overwrite="yes" > <! ---フッターとしてのテキスト---> <cfset sourcefile="#ExpandPath('file.pdf')#"> <cfset destfile="#ExpandPath('file_footer.pdf')#"> <cfpdf action="addfooter" source="#sourcefile#" destination="#destfile#" text="これはサンプルフッターです" align="center" overwrite="yes" >
出力
addHeader
<! ---ヘッダーとしてのテキスト---> <cfset sourcefile="#ExpandPath('file.pdf')#"> <cfset destfile="#ExpandPath('file_header.pdf')#"> <cfpdf action="addheader" source="#sourcefile#" destination="#destfile#" text="これはサンプルヘッダーです" align="center" overwrite="yes" > <! ---ヘッダーとしての画像---> <cfset sourcefile="#ExpandPath('file.pdf')#"> <cfset destfile="#ExpandPath('file_header.pdf')#"> <cfpdf action="addheader" source="#sourcefile#" destination="#destfile#" image="adobe.png" overwrite="yes" >
出力
addStamp
<cfset sourcefile=ExpandPath('addStamp.pdf')/> <cfset destinationfile=ExpandPath("addStamp_result.pdf")/> <cftry> <cfpdf action="addStamp" source="#sourcefile#" destination="#destinationfile#" overwrite="true"> <cfpdfparam pages="2" coordinates = "397,532,519,564" iconname="Approved" note="stamp1"> <cfpdfparam pages="3-4" coordinates = "397,532,519,564" iconname="Experimental" > <cfpdfparam pages="5" coordinates = "397,532,519,564" iconname="NotApproved" > <cfpdfparam pages="6" coordinates = "397,532,519,564" iconname="AsIs" note="stamp2"> <cfpdfparam pages="7-8" coordinates = "397,532,519,564" iconname="Expired" note="stamp3"> <cfpdfparam pages="9" coordinates = "397,532,519,564" iconname="NotForPublicRelease" > <cfpdfparam pages="10" coordinates = "397,532,519,564" iconname="Confidential" > <cfpdfparam pages="11" coordinates = "397,532,519,564" iconname="Final" note="stamp4"> <cfpdfparam pages="12" coordinates = "397,532,519,564" iconname="Sold"> <cfpdfparam pages="13" coordinates = "397,532,519,564" iconname="Departmental" note="stamp1"> <cfpdfparam pages="14" coordinates = "397,532,519,564" iconname="Draft"> <cfpdfparam pages="15" coordinates = "397,532,519,564" iconname="ForPublicRelease"> <cfpdfparam pages="16" coordinates = "397,532,519,564" iconname="TopSecret"> <cfpdfparam pages="17" coordinates = "397,532,519,564" iconname="ForComment"> </cfpdf> <cfcatch name="myvar"> <cfdump var="#myvar#"> </cfcatch> </cftry>
出力
addWatermark
<cfset sourcefile="#ExpandPath('file.pdf')#"> <cfset destfile="#ExpandPath('file_watermark.pdf')#"> <cfpdf action="addwatermark" source="#sourcefile#" destination="#destfile#" image="image.png" pages="1-2" overwrite="yes">
出力
archive
<! ---アーカイブ標準 = 2b ---> <cfset sourcefile="#ExpandPath('hello.pdf')#"/> <cfset archivedfile="#ExpandPath('Hello_archived.pdf')#"/> <cftry> <cfpdf action="archive" source="#sourcefile#" destination="#archivedfile#" standard="2b" overwrite="true"/> <cfcatch name="myvar"> <cfdump var="#myvar#"> </cfcatch> </cftry> <! --- アーカイブ標準 = 3b ---> <cfset sourcefile="#ExpandPath('hello.pdf')#"/> <cfset archivedfile="#ExpandPath('Hello_archived.pdf')#"/> <cftry> <cfpdf action="archive" source="#sourcefile#" destination="#archivedfile#" standard="3b" overwrite="true"/> <cfcatch name="myvar"> <cfdump var="#myvar#"> </cfcatch> </cftry>
出力
Acrobat 上で任意のファイルのアーカイブを検証するには、
ツール/印刷工程/プリフライト/PDF/A 準拠を選択した後、PDF/A-2b または
PDF/A-3b への準拠を確認します。これにより、PDF が特定の標準に準拠して アーカイブ されているかどうかを確認できます。
deletePages
<cfset sourcefile="#ExpandPath('file.pdf')#"> <cfset destfile="#ExpandPath('file_pages_deleted.pdf')#"> <cfpdf action="deletepages" pages="5-10" source="#sourcefile#" destination="#destfile#" overwrite="yes" >
export comment
<cfset sourcefile=ExpandPath("comment.pdf")/> <cfset destinationfile=ExpandPath("comment_exported.fdf")/> <cfpdf action="export" type="comment" source="#sourcefile#" exportto="#destinationfile#" overwrite="true" >
出力
export metadata
<cfset sourcefile="#ExpandPath('metadata.pdf')#"/> <cfset destinationfile="#ExpandPath('metadata_exported.xmp')#"/> <cfpdf action="export" type="metadata" source="#sourcefile#" exportto="#destinationfile#" overwrite="true" >
出力
extractImage
<cfset sourcefile="#ExpandPath('coldfusion.pdf')#"> <cfpdf action = "extractimage" source = "#sourcefile#" pages = "1-20" destination = "images" imageprefix = "cf_" format="jpg" overwrite="yes" >
extractText
<cfset sourcefile="#ExpandPath('coldfusion.pdf')#"> <cfpdf action="extracttext" source="#sourcefile#" name="myXML" pages="1-10" overwrite="yes" > <cfcontent type="text/xml" /> <cfoutput>#myXML#</cfoutput>
getInfo
<cfset sourcefile=ExpandPath("coldfusion.pdf")/> <cfpdf action="getInfo" source="#sourcefile#" name="PDFInfo"> <cfdump var="#PDFInfo#" >
出力
import comments
<cfset sourcefile="#ExpandPath('noComment.pdf')#"/> <cfset destinationfile="#ExpandPath('withComment.pdf')#"/> <cfset importfromfilename = "#ExpandPath('comment_exported.xfdf')#"> <cfpdf action="import" type="comment" source="#sourcefile#" importfrom="#importfromfilename#" destination="#destinationfile#" overwrite="true" >
出力
import metadata
<cfset sourcefile="#ExpandPath('noMetadata.pdf')#"/> <cfset destinationfile="#ExpandPath('metadataImported.pdf')#"/> <cfset importfromfilename = "#ExpandPath('metadata_exported.xmp')#"> <cftry> <cfpdf action="import" type="metadata" source="#sourcefile#" importfrom="#importfromfilename#" destination="#destinationfile#" overwrite="true" > <cfcatch name="mycatch"> <cfdump var="#mycatch#" > </cfcatch> </cftry>
merge
PDF リストを使用したマージ
<cfset source1="#ExpandPath('coldfusion.pdf')#"/> <cfset source2="#ExpandPath('security.pdf')#"/> <cfset source3="#ExpandPath('sessionsecurity.pdf')#"/> <cfset desfile="#ExpandPath('merged.pdf')#"/> <cfpdf action="merge" source="#source1#,#source2#,#source3#" destination="#desfile#" overwrite="yes" >
cfpdfparam を使用した PDF のマージ
<cfset source1="#ExpandPath('coldfusion.pdf')#"/> <cfset source2="#ExpandPath('security.pdf')#"/> <cfset source3="#ExpandPath('sessionsecurity.pdf')#"/> <cfset desfile="#ExpandPath('merged_new_PDF.pdf')#"/> <cfpdf action="merge" destination="#desfile#" overwrite="yes"> <cfpdfparam source="#source1#" pages="1-5"/> <cfpdfparam source="#source2#" pages=2 /> <cfpdfparam source="#source3#" pages="3-6" /> </cfpdf>
optimize
デフォルトの最近傍法を使用
<cfset sourcefile="#ExpandPath('coldfusion.pdf')#"/> <cfset desfile="#ExpandPath('optimized_nn.pdf')#"/> <cfpdf action="optimize" source="#sourcefile#" destination="#desfile#" algo="Nearest_Neighbour" overwrite="yes">
バイリニア法を使用
<cfset sourcefile="#ExpandPath('coldfusion.pdf')#"/> <cfset desfile="#ExpandPath('optimized_biliear.pdf')#"/> <cfpdf action="optimize" source="#sourcefile#" destination="#desfile#" algo="bilinear" overwrite="yes">
バイキュービック法を使用
<cfset sourcefile="#ExpandPath('coldfusion.pdf')#"/> <cfset desfile="#ExpandPath('optimized_bicubic.pdf')#"/> <cfpdf action="optimize" source="#sourcefile#" destination="#desfile#" algo="bicubic" overwrite="yes">
processDDX
merge.ddx
<?xml version="1.0" encoding="UTF-8"?> <DDX xmlns="http://ns.adobe.com/DDX/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ns.adobe.com/DDX/1.0/ coldfusion_ddx.xsd"> <PDF result="Out1"> <PDF source="Doc1"/> <PDF source="Doc2"/> </PDF> </DDX>
processDDX .cfm
<cfset source1="#ExpandPath('security.pdf')#"/> <cfset source2="#ExpandPath('sessionsecurity.pdf')#"/> <cfset outfile="#ExpandPath('book.pdf')#"/> <cfset ddxloc="#ExpandPath('merge.ddx')#"/> <! ---このコードは入力ファイルの構造体を作成します。---> <cfset inputStruct=StructNew()> <cfset inputStruct.Doc1="#source1#"> <cfset inputStruct.Doc2="#source2#"> <! ---このコードは出力ファイルの構造体を作成します。---> <cfset outputStruct=StructNew()> <cfset outputStruct.Out1="#outfile#"> <! ---このコードは DDX 命令を処理し、ブックを作成します。---> <cfpdf action="processddx" ddxfile="#ddxloc#" inputfiles="#inputStruct#" outputfiles="#outputStruct#" name="myBook"> <cfdump var="#myBook#">
protect
<cfset sourcefile="#ExpandPath('coldfusion.pdf')#"/> <cfset desfile="#ExpandPath('coldfusion_protected.pdf')#"/> <cfpdf action="protect" source="#sourceFile#" destination="#desfile#" newUserPassword="password" >
出力
read
<cfset sourcefile="#ExpandPath('coldfusion.pdf')#"/> <cfpdf action="read" name="myBook" source="#sourcefile#" > <cfdump var="#myBook#" >
出力
redact
<cfset sourcefile=ExpandPath('redact.pdf')/> <cfset destinationfile=ExpandPath("redact_result.pdf")/> <cfpdf action="redact" source="#sourcefile#" destination="#destinationfile#" overwrite="true"> <cfpdfparam pages="1,2" coordinates="306,426,366,496" > <cfpdfparam pages="3" coordinates="100,100,400,400"> <cfpdfparam pages="*" coordinates="0,0,100,100"> </cfpdf>
出力
removeHeaderFooter
<cfset sourcefile=ExpandPath('coldfusion_header_footer.pdf')/> <cfset desfile=ExpandPath('coldfusion_no_header_footer.pdf')/> <cfpdf action = "removeheaderfooter" source="#sourcefile#" destination = "#desfile#" pages="1-5" overwrite="yes" >
removeWatermark
<cfset sourcefile=ExpandPath('coldfusion_watermark.pdf')/> <cfset desfile=ExpandPath('coldfusion_no_watermark.pdf')/> <cfpdf action = "removewatermark" source="#sourcefile#" destination = "#desfile#" pages="3-5" overwrite="yes" >
sanitize
<cfset sourcefile="#ExpandPath('CF_Hotfix.pdf')#"/> <cfset destinationfile="#ExpandPath('CF_Hotfix_Sanitized.pdf')#"/> <cfpdf action="sanitize" source="#sourcefile#" destination="#destinationfile#" overwrite="true" >
出力 - 非表示情報の削除前
出力 - 非表示情報の削除後
setInfo
<cfset PDFinfo=StructNew()> <cfset PDFinfo.Title="Apply Hotfixes to ColdFusion"> <cfset PDFinfo.Author="ColdFusion Developer"> <cfset PDFinfo.Keywords="ColdFusion,Update, Hotfix, Security Update"> <cfset PDFinfo.Subject="ColdFusion Hotfixes"> <cfset sourcefile="file.pdf"/> <cfset desfile="file_info.pdf"/> <cfpdf action="setInfo" source="#sourcefile#" info="#PDFinfo#" destination="#desfile#" overwrite="yes" >
出力
sign
キーストアを作成し、キーペアを生成します。 質問が表示されたら、回答します。
keytool - genkey -alias pdfdomain - keyalg RSA - keystore KeyStore.jks - keysize 2048
新しい キーストア に基づいて、CSR を生成します。
keytool - certreq -alias pdfdomain - keystore KeyStore.jks -file pdfdomain . csr
<! ----署名フィールドを作成し、特定の PDF に認証済みの署名を追加して署名します---> <cfset sourcefile=ExpandPath('coldfusion.pdf')/> <cfset destinationfile=ExpandPath("cf_signed.pdf")/> <cfset pathtokeystore=ExpandPath("KeyStore.jks")/> <cfpdf action="sign" source="#sourcefile#" destination="#destinationfile#" keystore="#pathtokeystore#" keystorepassword="password" overwrite="true" pages="1" height="100" width="100" position="100,100" author="true" >
出力
thumbnail
<cfset sourcefile="#ExpandPath('coldfusion.pdf')#"> <cfpdf action="read" name="myDoc" source="#sourcefile#" /> <cfpdf action="thumbnail" source="myDoc" destination="C:\cfpdf\" overwrite="yes" /> <cfimage action="read" name="img" source="C:\cfpdf\thumbnail_page_1.jpg" format="jpg" />
出力
transform
<cfset sourcefile="#ExpandPath('coldfusion.pdf')#"> <cfset desfile="#ExpandPath('coldfusion_transformed.pdf')#"> <cfpdf action = "transform" source = "#sourcefile#" destination = "#desfile#" hscale = ".5" vscale = ".8" position = "8, 10" rotation = "180" overwrite="yes" >
出力
unsign
<cfset sourcefile=ExpandPath('cf_signed.pdf')/> <cfset destinationfile=ExpandPath("cf_unsigned.pdf")/> <cfpdf action="unsign" source="#sourcefile#" destination="#destinationfile#" unsignall="true" overwrite="true" >
出力
validatesSignature
<cfset sourcefile="#ExpandPath('cf_signed.pdf')#"> <cfpdf action="validatesignature" source="#sourceFile#" name="pdfInfo"> <cfoutput>#pdfInfo.SUCCESS#</cfoutput> <! ---「YES」を返す--->
write
<! --- PDF のプロパティを書き込む---> <cfset sourcefile="#ExpandPath('coldfusion.pdf')#"> <cfpdf action="write" source="#sourcefile#" name="PDFout" overwrite="yes"> <cfdump var="#PDFout#" >
<! --- PDF ドキュメントを別の PDF に書き込む---> <cfset sourcefile="#ExpandPath('coldfusion.pdf')#"> <cfset desfile="#ExpandPath('coldfusion_write.pdf')#"> <cfpdf action="write" source="#sourcefile#" destination="#desfile#" overwrite="yes" >