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" />

カテゴリ

構文

Add a watermark to a PDF document 
<cfpdf 
required 
action = "addwatermark" 
source = "absolute or relative pathname to a PDF file|PDF document variable| 
cfdocument variable" 
one of the following: 
copyfrom = "absolute or relative pathname to a PDF file from which the first page is 
used as a watermark" 
image = "absolute or relative pathname to image file|image variable used as a 
watermark" 
optional 
foreground = "yes|no" 
isBase64 = "yes|no" 
opacity = "watermark opacity" 
overwrite = "yes|no" 
pages = "page or pages to add the watermark" 
password = "user or owner password for the PDF source file" 
position = "position on the page where the watermark is placed" 
rotation = "degree of rotation of the watermark" 
showonprint = "yes|no"> 
// one of the following: 
destination = "PDF output file pathname" 
name = "PDF document variable name" 
image = "image file name to be used as the footer" 
text = "text to be used in the footer" 

<!---  action=sanitize --->
<cfpdf
// required 
action="sanitize"
source = "absolute or relative pathname to a PDF file|PDF document variable|cfdocument variable"
// Use any one of the following attributes: 
destination = "PDF output file pathname"
name = “PDF document variable name”>
<!--- end syntax --->

<!--- action=export comments --->
<cfpdf
// required
action="export"
type="comment"
source = "absolute or relative pathname to a PDF file|PDF document variable|cfdocument variable"
exportTo = "destination of xfdf file">
<!--- end syntax --->

<!--- action=import comments --->
<cfpdf
// required        
action="import"
type="comment"
source = "absolute or relative pathname to a PDF file|PDF document variable|cfdocument variable"
importFrom = "source of xfdf file"
// Use any one of the following attributes: 
destination = "PDF output file pathname"
name = “PDF document variable name”>
<!--- end syntax --->

<!--- action=export metadata --->
<cfpdf
// required       
action="export"
type="metadata"
source = "absolute or relative pathname to a PDF file|PDF document variable|cfdocument variable"
exportTo = "destination of xmp file">
<!--- end syntax --->

<!--- action=import metadata --->
<cfpdf
// required        
action="import" 
type="metadata"
source = "absolute or relative pathname to a PDF file|PDF document variable|cfdocument variable"
importFrom  = "source of xmp file"
// Use any one of the following attributes: 
destination = "PDF output file pathname"
name = “PDF document variable name”>
<!--- end syntax --->

<!--- action=archive --->
<cfpdf
// required
action="archive"
source="#sourcefilename#"
// Use any one of the following attributes: 
destination = "PDF output file pathname"
name = “PDF document variable name”>
// optional
standard = "3b"/>
<!--- end syntax --->

<!--- action=addAttachments --->
<cfpdf
// required       
action="addAttachments"
source = "absolute or relative pathname to a PDF file|PDF document variable|cfdocument variable|directory path"
// Use any one of the following attributes: 
destination = "PDF output file pathname"
name = “PDF document variable name”  
<cfpdfparam
   // required
   source= "path of attachment"
   filename = "filename for the attachment"
   encoding = "encoding for filename" >
   // optional  
   description = "descriptive text"
   mimetype = "eg: application/pdf, text/html">
>
<!--- end syntax --->

<!--- action=addStamp --->
<cfpdf
// required
action="addStamp"
source = "absolute or relative pathname to a PDF file|PDF document variable|cfdocument variable"
// Use any one of the following attributes: 
destination = "PDF output file pathname"
name = “PDF document variable name”>
<cfpdfparam
  pages = "page number|page range|comma-separated page numbers"
  <!--- It is recommended that that ratio of the stamp width:height is
         10:3 ---> 
  coordinates = "llx,lly,urx,ury"
  iconName = "name of icon"
  note = "content of stamp" >
>
<!--- end syntax --->

Add headers 
<cfpdf 
required 
action = "addheader" 
source = "absolute or relative pathname to a PDF file|PDF document variable| 
cfdocument variable" 
pages = "page or pages to add the footer" 
optional 
isBase64 = "yes|no" 
overwrite = "yes|no" 
password = "user or owner password for the PDF source file" 
showonprint = "yes|no"> 
align = "left|right|center" 
leftmargin = "value of the header left marign" 
rightmargin = "value of the header right margin" 
numberformat = "LOWERCASEROMAN|NUMERIC|UPPERCASEROMAN" <!---used with either 
_PAGENUMBER or _LASTPAGENUMBER---> 
opacity = "header opacity" 
topmargin = "value of the top margin of the header" 
\\one of the following: 
destination = "PDF output file pathname" 
name = "PDF document variable name" 
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. You can also add a normal text string. 
image = "image file name to be used as the header" 

Add footer 
<cfpdf 
required 
action = "addfooter" 
source = "absolute or relative pathname to a PDF file|PDF document variable| 
cfdocument variable" 
pages = "page or pages to add the footer" 
optional 
isBase64 = "yes|no" 
overwrite = "yes|no" 

password = "user or owner password for the PDF source file" 
showonprint = "yes|no"> 
destination = "PDF output file pathname" 
name = "PDF document variable name" 
align = "left|right|center" 
one of the following: 
image = "image file name to be used as the footer" 
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 = "value of the footer left marign" 
rightmargin = "value of the footer right margin" 
numberformat 
opacity = "footer opacity" 
bottommargin = "value of the bottom margin" 
Delete pages from a PDF document 
<cfpdf 
required 
action = "deletepages" 
pages = "page or pages to delete" 
source = "absolute or relative pathname to a PDF file|PDF document variable| 
cfdocument variable" 
optional 
overwrite = "yes|no" 
password = "PDF source file password" 
one of the following: 
destination = "PDF output file pathname" 
name = "PDF document variable name"> 
Delete headers and footers 
<cfpdf 
required 
action = "removeheaderfooter" 
source = "absolute or relative pathname to a PDF file|PDF document variable| 
cfdocument variable" 
optional 
overwrite = "yes|no" 
pages = "page or pages to add the watermark" 
password = "user or owner password for the PDF source file" 
one of the following: 
destination = "PDF output file pathname" 
name = "PDF document variable name" 
Retrieve information about a PDF document 
<cfpdf 
required 
action = "getinfo" 
name = "structure variable name" 
source = "absolute or relative pathname to a PDF file|PDF document variable| 
cfdocument variable" 
optional 
password = "PDF source file password"> 

Merge PDF documents into an output PDF file 
<cfpdf 
required 
action = "merge" 
one of the following: 
directory = "directory of PDF files to merge" 
source = "comma-separated list of PDF source files|absolute or relative pathname 
to a PDF file|PDF document variable|cfdocument variable" 
<cfpdfparam> 
\\required only when package is specified as true 
order = "name|time" 
one of the following if <cfpdfparam> is specified: 
name = "PDF document variable name" 
destination = "PDF output file pathname" 
optional 
package = "true|false" <!---create PDF packages if set to true. You can provide 
description in cfpdfparam tag, such as <cfpdfparam file="filename desc="">---> 
ascending = "yes|no" 
keepBookmark = "yes|no" 
overwrite = "yes|no" 
pages = "pages to merge in PDF source file" 
password = "PDF source file password" 
stopOnError = "yes|no" 
\\one of the following: 
destination = "PDF output file pathname" 
name = "PDF document variable name"> 

Use DDX instructions to manipulate PDF documents 
<cfpdf 
required 
ddxfile = "DDX filepath|DDX string" 
inputfiles = "#inputStruct#" 
outputfiles = "#outputStruct#" 
name = "structure name"> 
optional 
action="processddx" 

Set passwords and encrypt PDF documnets 
<cfpdf 
required 
action = "protect" 
source = "absolute or relative pathname to a PDF file|PDF document variable| 
cfdocument variable" 
at least one of the following: 
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 output file pathname" 
encrypt = "RC4_40|RC4_128|RC4_128M|AES_128|AES_256R6|AES_256R5|none" 
overwrite = "yes|no" 
password = "source file password"> 

Name a PDF document variable 
<cfpdf 
required 
action = "read" 
name = "PDF document variable name" 
source = "absolute or relative pathname to a PDF file|PDF document variable| 
cfdocument variable" 
optional 
password = "PDF source file password"> 

Remove a watermark from a PDF document 
<cfpdf 
required 
action = "removeWatermark" 
source = "absolute or relative pathname to a PDF file|PDF document variable| 
cfdocument variable" 
optional 
overwrite = "yes|no" 
pages = "page or pages from which to remove the watermark" 
password = "PDF source file password"> 
one of the following: 
destination = "PDF output file pathname" 
name = "PDF document variable name" 

Set information about a PDF document 
<cfpdf 
required 
action = "setinfo" 
info = "#structure variable name#" 
source = "absolute or relative pathname to a PDF file|PDF document variable| 
cfdocument variable" 
optional 
destination = "PDF output file pathname" 
overwrite = "yes|no" 
password = "PDF source file password"> 

Generate thumbnails from pages in a PDF document 
<cfpdf 
required 
action = "thumbnail" 
source = "absolute or relative pathname to a PDF file|PDF document variable| 
cfdocument variable" 
optional 
destination = "directory path where the thumbnail images are written" 
format = "png|jpeg|tiff" 
imagePrefix = "string used as a prefix in the output filename" 
overwrite = "yes|no" 
password = "PDF source file password"> 
pages = "page or pages to make into thumbnails" 
resolution= "low|high" 
scale = "percentage between 1 and 100" 
transparent = "yes|no"> 
hires = "yes|no" 
overridepage = "yes|no" 
compresstiffs = "yes|no" 
maxscale = "maximum scale of the thumbnail" 
maxlength = "maximum length of the thumbnail" 
maxbreadth = "maximum width of the thumbnail"
jpgdpi = "sets the dpi (dots per inch) value of the jpeg image. The default value is 96 dpi."

Write a PDF document to an output file 
<cfpdf 
required 
action = "write" 
source = "absolute or relative pathname to a PDF file|PDF document variable| 
cfdocument variable" 
\\one of the following 
destination = "PDF output file pathname" 
name = #PDF variable# <!---new variable support added now---> 
optional 
flatten = "yes|no" 
overwrite = "yes|no" 
password = "PDF source file password" 
saveOption = "linear|incremental|full" 
version = "1.1|1.2|1.3|1.4|1.5|1.6"> 
encodeall = "yes|no" 

Reduce the quality of a PDF document 
<cfpdf 
required 
action = "optimize" 
source = "absolute or relative path of the PDF file|PDF document variable| 
cfdocument variable" 
algo = "bilinear|bicubic|nearest_neighbour" <!---algorithm for image 
downsampling---> 
pages = "*" <!----page numbers associated with the objects in the PDF document---> 
optional 
vscale= "Vertical scale of the image to be modified. Valid values are vscale>0" 
hscacle="Horizontal scale of the image to be modified. Valid values are hscale<1" 
destination = "PDF output file pathname" 
name = "PDF document variable" 
noattachments = "Discard all attachments" 
nobookmarks = "Discard all bookmarks" 
nocomments = "Discard all comments" 
nofonts = "Discard all fonts" 
nojavascripts = "Discard all JavaScript actions" 
nolinks = "Discard external cross-references" 
nometadata = "Discard document information and metadata" 
nothumbnails = "Discard embedded page thumbnails" 
overwrite = "true" <!---Overwrite the specified object in the PDF document---> 
password = "" <!--- PDF document password---> 

Extract text 
<cfpdf 
required 
action="extracttext" <!---extract all the words in the PDF.---> 
source= "absolute or relative path of the PDF file|PDF document variable| 
cfdocument variable" 
pages = "*" <!----page numbers from where the text needs to be extracted from the 
PDF document---> 
optional 
addquads = "add the position or quadrants for the text in the PDF" 
honourspaces = "true|false" 
overwrite = "true" <!---Overwrite the specified object in the PDF document---> 
password = "" <!--- PDF document password---> 
type = "string|xml" <!---format in which the text needs to be extracted---> 
one of the following: 
destination = "PDF output file pathname" 
name = "PDF document variable" 
usestructure = "true|false" 
Extract image 
<cfpdf 
required 
action = "extractimage" <!---extract images and save it to a directory---> 
source = "absolute or relative path of the PDF file|PDF document variable| 
cfdocument variable" 
pages = "*" <!---page numbers from where the images need to be extracted---> 
optional 
overwrite = "true|false" <!---overwrite any existing image when set to true---> 
format = "png|tiff|jpg" <!---format in which the images should be extracted---> 
imageprefix = "*" <!---the string that you want to prefix with the image 
name---> 
password = "" <!--- PDF document password---> 
destination = "PDF output file pathname" 

Page level transformations 
<cfpdf 
required 
action = "transform" 
source = "absolute or relative path of the PDF file|PDF document variable| 
cfdocument variable" 
pages = "page or pages to be transformed" 
optional 
hscale = "value of the horizontal scale of the page" 
overwrite = "yes|no" 
password = "PDF source file password" 
position = "x, y" <!---value in pixels---> 
rotation = "0|90|180|270" 
vscale = "length of the page to be transformed" 
one of the following: 
destination = ""Path of the directory where the PDF document will be saved" 
name = "PDF document variable"

// redact
<cfpdf action="redact" source="source PDF document" destination="destination PDF document" overwrite="true | false">
     <cfpdfparam pages="from page-to page" coordinates="llx,lly,urx,ury">
 </cfpdf>

注意:

このタグの属性は attributeCollection 属性で指定でき、その値は構造体になります。attributeCollection 属性で構造体の名前を指定し、タグの属性名を構造体のキーとして使用します。

関連項目

属性

属性

アクション

必須/オプション

説明

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 の新機能 – ドキュメント内のすべての署名を確認します。

name 属性には、この操作の結果として生じる構造体が保存されます。name 属性には 2 つの要素が含まれます。

    • すべての署名が有効と見なされたかどうかを示すブール値フィールド。
    • 無効だったすべての署名の名前で構成される配列リスト。
      すべての署名が有効である場合、配列リストは空になります。

readsignaturefields

ColdFusion 11 の新機能 - すべての署名フィールドを読み取って、属性名で指定される変数のクエリーオブジェクトを返します。
このクエリーオブジェクトには 4 つの列があります。

    • Name - 署名フィールドの完全修飾名。
    • Certifiable - このフィールドに作成者署名を含めることができるかどうかを示します。
    • Signable – このフィールドは署名可能かどうかを示します。
    • Is signed – このフィールドは署名済みかどうかを示します。

ColdFusion 2016 の新機能:

  • sanitize
  • export
  • import
  • archive
  • addAttachments
  • addStamp
  • 墨消し

addquads

extracttext

オプション

サムネールの位置および象限を追加します。

align

addheader
addfooter

オプション

PDF のヘッダーとフッターを揃えます。

algo

optimize

必須

イメージダウンサンプリングのアルゴリズムを指定します。値は bilinear、bicubic および nearest_neighbour です。

ascending

merge

オプション

PDF ファイルのソート順です。

yes:ファイルは昇順でソートされます。

no:ファイルは降順でソートされます。
directory 属性を指定している場合にのみ適用できます。

author

sign

オプション

財務関係、法務関係などの規制されたトランザクションを含むビジネストランザクションには、ドキュメントの署名時に高いレベルの保証が必要になります。

  ドキュメントが電子的に配布されるときに、受信者が次の操作を実行できることが重要になります。

ドキュメントの信憑性の検証 – このドキュメントの署名者のアイデンティティを確認できる

ドキュメントの完全性の検証 - このドキュメントが送信中に変更されていないことを確認できる

作成者ベースの署名は、これらの両方のセキュリティサービスを提供します。

この属性が指定されていない場合は、author=false として扱われます。

bottomMargin

addfooter

オプション

bottomMargin の値を指定します。

copyFrom

addWatermark

オプション

透かしとして使用する PDF ドキュメントのパス名です (このドキュメントの最初のページが透かしとして使用されます)。

compresstiffs

thumbnail

オプション

TIFF 形式のサムネールを圧縮します。

ddxfile

processddx

必須

DDX ファイルのパス名または DDX 命令を含む文字列です。

destination

addWatermark archive
deletePages
merge
protect
removeWatermark
sign        setInfo
thumbnail
write
optimize
extracttext
extractimage
addheader
addfooter
removeheaderfooter
transform

 


write アクション
に必須。その他のすべてのアクションでは任意。

変更後の PDF ドキュメントのパス名です。保存先のファイルが既に存在する場合は、overwrite 属性を yes に設定します。
保存先のファイルが存在せず、指定した親ディレクトリが存在する場合は、ColdFusion によってそのファイルが作成されます。
destination 属性と name 属性の両方を指定することはできません。
thumbnail アクションの場合は、イメージを書き込むディレクトリパスが保存先になります。保存先ディレクトリの相対パス名を指定する場合は、template ディレクトリからの相対パスを使用します。保存先ディレクトリを指定しない場合は、template ディレクトリの下に thumbnails というサブディレクトリが作成されます。
optimize アクションでは、destinationは、最適化する PDF ドキュメントのあるパスです。extracttextおよびextractimageでは、destinationは、テキストまたはイメージの抽出元となる PDF ドキュメントのパスです。
addheaderaddfooterremoveheaderfooter では、destinationは、ヘッダーまたはフッターを追加または削除する PDF ドキュメントのパスです。
transform の場合、保存先では、ページレベルの変換の実行が必要な PDF ドキュメントのディレクトリパスが指定されます。

directory

merge

オプション

マージする PDF ドキュメントのディレクトリです。directory 属性または source 属性のいずれかを指定します。directory 属性を指定した場合、デフォルトでは、ファイル名の降順でドキュメントの順序が決定されます。ファイルの順序を変更するには、order 属性を使用します。

encodeall

write

オプション

ページ内容を最適化するために、エンコードされていないストリームをエンコードします。

encrypt

protect

オプション

PDF 出力ファイルの暗号化方式です。ColdFusion 2016 では、AES_256R6と AES_256R5 という 2 つの新しい暗号化アルゴリズムがサポートされています。

  • RC4_40
  • RC4_128
  • RC4_128M
  • AES_128
  • AES_256R6
  • AES_256R5
  • None

注意: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

必須


キーストアファイルの場所です。例えば、C:\OpenSSL\bin\keystore.jks です。

keypassword

sign

オプション

秘密キー用のパスワードです。指定しない場合は、keystorepasswordが使用されます。

keystorepassword

sign

必須

キーストアのパスワードです

leftmargin

addheader

オプション

ヘッダーの左マージンの値を指定します。

maxbreadth

thumbnail

オプション

サムネールの最大幅を指定します。

maxlength

thumbnail

オプション

サムネールの最大長を指定します。

maxscale

thumbnail

オプション

サムネールの最大スケールを指定します。

name

addWatermark
deletePages
getInfo
merge
processddx
protect
read         
readsignaturefields
removeWatemark
write
tranform
addheader
addfooter
removeheaderfooter

必須:
getInfo
processddx
readreadsignaturefields
オプション:
addWatermark
deletePages
merge
protect
removeWatermark
tranform
addheader
addfooter
removeheader
footer

PDFドキュメントの変数名です。例えば、myBook です。
ソースが PDF ドキュメント変数の場合は、name 属性を再度指定することはできません。変更後の PDF ドキュメントを保存先に書き込むことができます。
destination 属性と name 属性の両方を指定することはできません。
processddxアクションの場合、名前は出力変数の成功または失敗を示す構造体を表します。

readsignaturefields アクションの場合、名前は、ソース PDF ドキュメントのすべての署名フィールドの情報が入力される構造体を表します。

 

newOwner
Password

protect

オプション(「説明」を参照)

PDF ドキュメントのアクセス許可を設定するためのパスワードです。
デフォルトのアクセス許可を変更するには、newOwnerPassword 属性を指定します。詳細については、「PDF ドキュメントのパスワード」を参照してください。

newUser
Password

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
addheader
addfooter

オプション

透かしの不透明度です。有効な値は 0 (透明) ~ 10 (不透明) の整数です。

order

merge

オプション

ディレクトリ内の PDF ドキュメントをマージする順序です。

name:ドキュメントはファイル名のアルファベット順でマージされます。

time:ドキュメントはタイムスタンプ順でマージされます。
デフォルトでは、降順で(例えば Z ~ A の順で)ファイルがマージされます。これを変更するには、ascending 属性を yes に設定します。

outputFiles

processddx

必須

キーとして DDX ファイルまたは文字列で指定された出力ファイルを含み、値として結果ファイルのパス名を含む構造体です。

overwrite

addSign addWatermark
archive
deletePages
merge
protect
removeWatermark
Sign        setInfo
thumbnail
write
tranform
addheader
addfooter
removeheaderfooter

オプション

保存先のファイルが既に存在する場合、PDF 出力で上書きするかどうかを指定します。

yes:書き込み先のファイルを上書きします。

no:書き込み先のファイルを上書きしません。
thumbnail アクションの場合は、保存先ディレクトリを上書きするかどうかを指定します。overwrite を yes に設定せず、保存先のディレクトリが既に存在する場合、サムネールは生成されません。

package

merge

オプション

PDF パッケージを作成します。

pages

addWatermark
deletePages
merge
removeWatermark
optimize
extracttext
extractimage    sign
addheader
addfooter
removeheaderfooter
transform

必須:
deletePages
オプション:
addWatermark
merge
removeWatermark
thumbnail
optimize
extractext
extractimage
tranform
addheader
addfooter
removeheader
footer

アクションの対象となるソース PDF ドキュメントのページです。"1,6-9,56-89,100, 110-120" のような形式で、複数のページまたはページ範囲を指定できます。
removeWatermark アクションの場合、pages 属性は透かしタイプにのみ適用されます。重複するページ番号および総ページ数より大きい番号は無視されます。 action=sign の場合、属性 pages の値は、1 つのページ番号のみで構成されている必要があります。

 

password

addWatermark addSign     
archive
deletePages
getInfo
merge
protect
readreadsignaturefields
removeWatermark
setInfo             sign
thumbnail         unsign
write
optimize
extracttext
extractimage
addheader
addfooter
removeheaderfooter validatesignaturefields
transform

オプション

ソース PDF ドキュメントのオーナーパスワードまたはユーザーパスワードです (ドキュメントがパスワードで保護されている場合)。

permissions

protect

オプション

PDF ドキュメントに対するアクセス許可のタイプ:

All

AllowAssembly

AllowCopy

AllowDegradedPrinting

AllowFillIn

AllowModifyAnnotations

AllowModifyContents

AllowPrinting

AllowScreenReaders

AllowSecure

None
All と None 以外のアクセス許可は、カンマ区切りのリストで指定できます。
アクセス許可を設定するには、newOwnerPassword 属性も設定する必要があります。

position

addWatermark             sign

オプション

 position 属性は、署名フィールドの左下隅の座標を表します。

resolution

thumbnail

オプション

サムネールイメージの生成に使用するイメージ品質です。

high:高解像度を使用します
(メモリ使用量が多くなります)。

low:低解像度を使用します。

rotation

addWatermark
transform

オプション

ページ上の透かしイメージを回転させる角度です(例:"30")。

saveOption

write

オプション

PDF 出力の保存オプションです。

full:通常の保存(デフォルト)

incremental:署名付き PDF ドキュメントの変更を保存する場合に必須

linear:表示を高速化する場合

scale

thumbnail

オプション

ソースページを基準としたサムネールのサイズです。1 ~ 100 のパーセントで指定します。

showOnPrint

addWatermark

オプション

PDF ドキュメントとともに透かしを印刷するかどうかを指定します。

yes:PDF ドキュメントとともに透かしを印刷します。

no:透かしは表示専用になります。

signature
fieldname

sign                                         unsign

オプション

ユーザーが署名をする署名フィールドの名前、またはユーザーが署名を解除する署名フィールドの名前です。

source

archive      addWatermark
deletePages
getInfo
merge
protect
read
removeWatermark
setInfo              sign
thumbnail
write
optimize
extracttext
extractimage
addheader
addfooter
removeheaderfooter
unsign
transform

必須(
merge については、「使用方法」を参照してください)。

ソースとして使用する 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
詳細については、「PDF バージョン」を参照してください。

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 ドキュメントとマージする方法を示します。

<!--- Use the cfdocument tag to create a cover page and write the output to a variable called 
cfdoc. ---> 
<cfdocument format="PDF" name="cfdoc"> 
<html> 
<body> 
<h1>Here is a cover page</h1> 
</body> 
</html> 
</cfdocument> 

<!--- Use the cfpdf tag and cfpdfparam tags to merge individual PDF documents into a new PDF document called new.pdf. Notice that the cfdoc variable created by using the cfdocument tag is the source value of the first cfpdfparam tag. ---> 
<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 ファイルに適用します。

<!--- Use the ImageNew function to create a ColdFusion image from a JPEG file. ---> 
<cfset myImage=ImageNew("../cfdocs/images/artgallery/jeff05.jpg")>

<!--- Use the ImageGrayscale function to convert the image to grayscale in memory. ---> 
<cfset ImageGrayscale(myImage)> 

<!--- Specify the image variable to apply the grayscale image as a watermark in the Book.pdf file. Because the source and destination are the same and the overwrite attribute is set to yes, ColdFusion overwrites the source file. ---> 
<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" // Use this attribute to add an image in the 
footer 
align = "right"> // By default, the alignemnt is center

また、フッターに挿入するイメージやテキストに加え、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 命令が処理されます。

<!--- The following code verifies that the DDX file exists and the DDX instructions are valid. ---> 
<cfif IsDDX("Book.ddx")> 

<!--- The following code maps the PDF source files to the PDF source variables in the 
DDX file. ---> 
<cfset inputStruct=StructNew()> 
<cfset inputStruct.Title="Title.pdf"> 
<cfset inputStruct.Doc1="Chap1.pdf"> 
<cfset inputStruct.Doc2="Chap2.pdf"> 
<cfset inputStruct.Doc3="Chap3.pdf"> 

<!--- The following code maps the PDF output file to the PDF result variable in the DDX 
file. ---> 
<cfset outputStruct=StructNew()> 
<cfset outputStruct.Out1="output.pdf"> 

<!--- The following code process the DDX instructions in the Book.ddx file to generate 
a merged document. ---> 
<cfpdf action="processddx" ddxfile="Book.ddx" inputfiles="#inputStruct#" 
outputfiles="#outputStruct#" name="ddxVar"> 
<cfelse> 
<p>The DDX instructions are not valid.</p> 
</cfif> 

<!--- The following code displays a success or failure message. ---> 
<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 Thumbnail Demo</h3> 

<!--- Create a variable for the name of the PDF document. ---> 
<cfset mypdf="myBook"> 
<cfset thisPath=ExpandPath(".")> 
<!--- Use the getInfo action to retrieve the total page count for the 
PDF document. ---> 
<cfpdf action="getInfo" source="#mypdf#.pdf" name="PDFInfo"> 
<cfset pageCount="#PDFInfo.TotalPages#"> 

<!--- Generate a thumbnail image for each page in the PDF source document, 
create a directory (if it doesn't already exist) in the web root that is 
a concatenation of the PDF source name and the word "thumbnails", and 
save the thumbnail images in that directory. ---> 
<cfpdf action="thumbnail" source="#mypdf#.pdf" overwrite="yes" 
destination="#mypdf#_thumbnails" scale=60> 

<!--- Loop through the images in the thumbnail directory and generate a link 
from each image to the corresponding page in the PDF document. ---> 
<cfloop index="LoopCount" from ="1" to="#pageCount#" step="1"> 
<cfoutput> 
<!--- Click the thumbnail image to navigate to the page in the PDF 
document. ---> 
<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 属性(オプション):ユーザーが署名する既存のフィールドまたは署名なしにする必要のある署名フィールドの完全修飾名。
<!---- Sign a specific signature field in a input 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 - このフィールドが表示可能かどうかを示します。

<!--- Read info about signature fields in a 
input pdf in a variable and dump it --->
<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>

出力

addatttachments

addFooter

<!--- image as footer --->

<cfset sourcefile="#ExpandPath('file.pdf')#">
<cfset destfile="#ExpandPath('file_footer.pdf')#">
<cfpdf action="addfooter" 
		source="#sourcefile#" 
		destination="#destfile#"
		image="adobe.png" 
		overwrite="yes" 
>

<!--- text as footer --->

<cfset sourcefile="#ExpandPath('file.pdf')#">
<cfset destfile="#ExpandPath('file_footer.pdf')#">
<cfpdf action="addfooter" 
		source="#sourcefile#" 
		destination="#destfile#"
		text="This is a sample footer" 
		align="center" 
		overwrite="yes" 
>

出力

addfooter

addHeader

<!--- text as header --->

<cfset sourcefile="#ExpandPath('file.pdf')#">
<cfset destfile="#ExpandPath('file_header.pdf')#">
<cfpdf action="addheader" 
		source="#sourcefile#" 
		destination="#destfile#"
		text="This is a sample header" 
		align="center" 
		overwrite="yes" 
>

<!--- image as header --->

<cfset sourcefile="#ExpandPath('file.pdf')#">
<cfset destfile="#ExpandPath('file_header.pdf')#">
<cfpdf action="addheader" 
		source="#sourcefile#" 
		destination="#destfile#"
		image="adobe.png"
		overwrite="yes" 
>

出力

addheader

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>

出力

addstamp

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">

出力

addwatermark

archive

<!--- archive standard=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>

<!--- archive standard=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 が特定の標準に準拠してアーカイブされているかどうかを確認できます。

archive-2b
archive-3b

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" 
>

出力

exportcomment

export metadata

<cfset sourcefile="#ExpandPath('metadata.pdf')#"/>
<cfset destinationfile="#ExpandPath('metadata_exported.xmp')#"/>

<cfpdf action="export" 
		type="metadata" 
		source="#sourcefile#" 
		exportto="#destinationfile#" 
		overwrite="true"
>

出力

exportmetadata

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#" >

出力

getInfo

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"
>

出力

importcomment

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')#"/>

<!--- This code creates a structure for the input files. ---> 
<cfset inputStruct=StructNew()> 
<cfset inputStruct.Doc1="#source1#"> 
<cfset inputStruct.Doc2="#source2#">

<!--- This code creates a structure for the output file. --->
<cfset outputStruct=StructNew()>
<cfset outputStruct.Out1="#outfile#">

<!--- This code processes the DDX instructions and generates the book. --->
<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"
>

出力

protect

read

<cfset sourcefile="#ExpandPath('coldfusion.pdf')#"/>
<cfpdf action="read" name="myBook" source="#sourcefile#" >
<cfdump var="#myBook#" >

出力

read

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>

出力

redact

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" 
>

出力 - 非表示情報の削除前

sanitize-before

出力 - 非表示情報の削除後

sanitize-after

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"
>

出力

setinfo

sign

キーストアを作成し、キーペアを生成します。 質問が表示されたら、回答します。

keytool-genkey-aliaspdfdomain-keyalgRSA -keystoreKeyStore.jks -keysize2048

新しいキーストアに基づいて、CSR を生成します。

keytool-certreq-aliaspdfdomain-keystoreKeyStore.jks -filepdfdomain.csr

<!---- Sign a specific pdf by creating a signature field and signing it with authoured signature --->
<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"
>

出力

sign

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" />

出力

thumbnail

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" 
>

出力

transform

unsign

<cfset sourcefile=ExpandPath('cf_signed.pdf')/>
<cfset destinationfile=ExpandPath("cf_unsigned.pdf")/>
<cfpdf action="unsign" 
	source="#sourcefile#" 
	destination="#destinationfile#" 
	unsignall="true" 
	overwrite="true"
>

出力

unsign

validatesSignature

<cfset sourcefile="#ExpandPath('cf_signed.pdf')#">
<cfpdf action="validatesignature" source="#sourceFile#" name="pdfInfo">
<cfoutput>#pdfInfo.SUCCESS#</cfoutput> <!--- returns YES --->

write

<!--- write the properties of the PDF --->
<cfset sourcefile="#ExpandPath('coldfusion.pdf')#">
<cfpdf action="write" 
	source="#sourcefile#" 
	name="PDFout" 
	overwrite="yes">
<cfdump var="#PDFout#" >
<!--- Write the PDF document to another PDF --->
<cfset sourcefile="#ExpandPath('coldfusion.pdf')#">
<cfset desfile="#ExpandPath('coldfusion_write.pdf')#">
<cfpdf action="write" 
	source="#sourcefile#" 
	destination="#desfile#"
	overwrite="yes"
>

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー