Create! Form R 7 Web クライアント 印 刷 ガイド
目 次 著 作 権 その 他 に 関 する 注 意 Create! の 著 作 権 はインフォテック アーキテクツ 株 式 会 社 にあります 本 書 の 内 容 は 予 告 なしに 変 更 することがあります 本 書 の 全 体 または 一 部 を 形 態 のいかんにかかわらず 複 製 転 載 することを 禁 じます Microsoft MS および MS-DOS は 米 国 Microsoft Corporation の 登 録 商 標 です Windows は 米 国 Microsoft Corporation の 商 標 です Adobe および PostScript Adobe Acrobat は 米 国 Adobe Systems,Inc. の 登 録 商 標 です その 他 本 書 で 記 述 されているシステム 名 製 品 名 は その 版 権 所 有 者 の 商 標 または 登 録 商 標 です
目 次 目 次 本 書 の 構 成...1 第 1 章 Create! Form Web クライアント 印 刷 2 Web クライアント 印 刷 概 要...3 処 理 の 流 れ...5 1.PDF 表 示 印 刷...5 2.PDF 非 表 示 印 刷...6 3.ブラウザ 標 準 印 刷...9 4.ブラウザ 任 意 指 定 印 刷...11 第 2 章 サンプル 実 行...14 共 通 の 設 定...15 1.Web サーバの 設 定...15 2.クライアントの 設 定...16 PDF 表 示 印 刷...18 1."index.htm"...18 2."run.asp"...18 3.クライアントからの 実 行...20 PDF 非 表 示 印 刷...21 1."index.htm"...21 2."run.asp"...22 3.クライアントからの 実 行...24 ブラウザ 標 準 印 刷...25 1."index.htm"...25 2."run.asp"...26 3.クライアントからの 実 行...28 ブラウザ 任 意 指 定 印 刷...29 1."index.htm"...29 2."run.asp"...30 3.クライアントからの 実 行...32 第 3 章 印 刷 コントロール 仕 様...34 起 動 方 法...35 CWebClient のクラス 情 報...36 印 刷 コントロール 処 理 結 果 コードリスト 41 データ 送 信 における 制 限 事 項...47 第 4 章 印 刷 コントロールの 応 用...48 印 刷 データの 削 除 方 法...49 1.バイナリを 扱 えないスクリプト(ASP 等 )を 使 用 している 場 合 49 2.バイナリを 扱 えるスクリプト(Perl 等 )を 使 用 している 場 合 49 スクリプトへのデータ 送 信...51 1.POST 文 字 列...51
目 次 2.GET 文 字 列...51 3.セッション 変 数...52 第 5 章 FormPrintStage WebClient...53 ランタイムとの 連 携...53 FormPrintStage WebClient ランタイムとの 連 携 による 機 能 54 1. 詳 細 な 印 刷 情 報 の 設 定...54 2.CCD ファイルを 使 用 した 印 刷...54 FormPrintStage WebClient ランタイムの 導 入 55 単 一 実 行 可 能 インストーラ...55 Web インストーラ...55 印 刷 情 報 設 定 変 更 ダイアログ...56 1. 印 刷 情 報 設 定 変 更 ダイアログ 起 動 方 法...56 2. 印 刷 情 報 設 定 変 更 ダイアログ 説 明...57 CCD ファイル 保 存 機 能 を 利 用 する...64 1. 印 刷 コントロールを 起 動 する Web ページの 構 成 64 2. 印 刷 データ 生 成 スクリプトの 構 成...65 第 6 章 Web クライアントセキュリティ 印 刷 67 Web クライアントセキュリティ 印 刷 概 要...68 1. 概 要...68 2. 導 入 環 境...68 処 理 の 流 れ...69 データ 送 信 における 制 限 事 項...71 使 用 方 法...72 1. 製 品 モジュール...72 2. 呼 び 出 しサンプル 例...72 3. 呼 び 出 しインターフェース...75 ログの 出 力...78 1. サーバーサイド...78 メッセージ 一 覧... 索 引...79
本 書 の 構 成 本 書 の 構 成 [ 内 容 ]
第 1 章 Create! Form Web クライアント 印 刷 第 1 章 Create! Form Web クライアント 印 刷 この 章 では Create! Form における Web クライアント 印 刷 の 実 装 方 法 処 理 の 概 要 を 説 明 します 2
第 1 章 Create! Form Web クライアント 印 刷 Web クライアント 印 刷 概 要 Web クライアント 印 刷 とは インターネットやイントラネットの Web システムにおいて Web ブラウザで 印 刷 処 理 を 行 うことです この Web ブラウザで 印 刷 処 理 を 行 う 方 法 については 以 下 のようなものが 考 えられます A1.PDF 表 示 印 刷 PDF ファイルを 表 示 して 表 示 画 面 から Adobe Acrobat あるいは Adobe Reader の 機 能 で 印 刷 す る 方 法 です この 印 刷 方 法 は サーバ 側 で 作 成 された PDF ファイルを ブラウザのプラグイン 機 能 で Adobe Acrobat あるいは Adobe Reader を 起 動 して 表 示 印 刷 するだけですので 特 別 な 処 理 を 実 装 する 必 要 はありません A2.PDF 非 表 示 印 刷 PDF ファイルを 非 表 示 ( 表 示 も 可 能 )で ブラウザでの 印 刷 指 示 により あらかじめ 指 定 され たプリンタへ 指 定 の 用 紙 で 印 刷 する 方 法 です この 非 表 示 での 印 刷 方 法 は サーバ 側 で 作 成 された PDF ファイルを 表 示 せずに Windows で 通 常 使 用 するプリンタ に 設 定 されたプリンタへ 印 刷 する 場 合 に 利 用 します 給 紙 選 択 などの 印 刷 情 報 は 通 常 使 用 するプリンタ で 設 定 された 内 容 が 使 用 されます この 処 理 を 実 装 するには 製 品 に 付 属 の 印 刷 コントロールを 使 用 する 必 要 があります B1.ブラウザ 標 準 印 刷 ブラウザでの 印 刷 指 示 により あらかじめ 指 定 のプリンタへ 指 定 の 用 紙 で 印 刷 する 方 法 です この 印 刷 方 法 は A2 と 同 様 に Windows で 通 常 使 用 するプリンタ に 設 定 されたプリンタへ 印 刷 を 行 います A2 の 方 法 で PDF ファイルを 利 用 して 印 刷 していたのに 対 し この 方 法 では Windows の 描 画 コ マンド(GDI)のデータを 記 録 したファイル (EMF ファイル ) を 使 用 します この 処 理 を 実 装 するには 製 品 に 付 属 の 印 刷 コントロールを 使 用 する 必 要 があります B2.ブラウザ 任 意 指 定 印 刷 ブラウザでの 印 刷 指 示 により 任 意 のプリンタへ 任 意 の 印 刷 情 報 で 印 刷 する 方 法 です この 印 刷 方 法 は サーバ 側 で 作 成 された 印 刷 データを Windows に 登 録 されているプリンタへ 印 刷 する 場 合 に 利 用 します プリンタが 複 数 の 場 合 にはプリンタの 指 定 給 紙 選 択 などの 印 刷 情 報 を 設 定 し 印 刷 することが できます この 処 理 を 実 装 するには 製 品 に 付 属 の 印 刷 コントロールと FormPrintStage WebClient ラン タイムを 使 用 する 必 要 があります A1 A2 は 印 刷 の 元 となるデータは PDF ファイルとなりますので サーバ 側 では PDF ファイル を 生 成 する FormCast ランタイム(または FormCollect ランタイム)を 使 用 することになります これに 対 して B1 は FormPrintStage ランタイム B2 は FormPrintStage Web ランタイムを 使 用 します ただし B1 の 用 途 においては A2 の 処 理 でも 補 うことが 可 能 なので ご 使 用 の 製 品 が FormCast ランタイム(または FormCollect ランタイム)の 場 合 は A2 の 処 理 で 代 用 すること も 可 能 です 構 築 するシステムの 用 途 に 合 わせて いずれかの 方 法 で Web クライアント 印 刷 処 理 を 実 装 して ください 以 降 では Web クライアント 印 刷 の 実 装 について 方 法 別 に 説 明 します 3
第 1 章 Create! Form Web クライアント 印 刷 << 注 意 1 >> A2 B1 B2 の 方 法 で 使 用 する 印 刷 コントロールは ActiveX コントロールですので 使 用 するブラウ ザは InternetExplorer(バージョン 5 以 上 )となります << 注 意 2 >> A1 A2 の 方 法 は Adobe Acrobat あるいは Adobe Reader が 別 途 必 要 になります どちらかの 製 品 のバージョン 4 以 上 をクライアントマシンにインストールしておきます << 参 考 >> Web ブラウザからの 指 示 で 印 刷 する 場 合 でも サーバから LAN 上 にあるプリンタ(または IPP プロ トコルでインターネット 上 にあるプリンタ)に 印 刷 する 場 合 は Web クライアント 印 刷 ではなくサー バ 印 刷 となりますので FormPrintStage ランタイム または FormPrint ランタイムの 印 刷 処 理 で 行 っ てください 電 子 署 名 によるモジュールの 正 当 性 弊 社 の 用 意 する 印 刷 コントロールは ベリサインが 発 行 するコードサイニング 証 明 書 によって 電 子 署 名 されています これにより 印 刷 コントロールが 弊 社 で 開 発 され その 後 モジュール の 変 更 が 一 切 が 行 われていないことを 証 明 することが 可 能 です 証 明 書 の 期 限 コードサイニング 証 明 書 の 有 効 期 間 は 1 年 間 であるため 証 明 書 の 有 効 期 限 が 過 ぎた 際 に 再 度 印 刷 コントロールに 証 明 書 で 電 子 署 名 をしなければなりません 証 明 書 の 有 効 期 限 を 過 ぎた ActiveX コントロールを 使 用 した 場 合 有 効 期 間 内 での IE のセキュ リティ 設 定 では インストール 時 あるいは 実 行 時 に 正 常 に 動 作 できなくなってしまう 可 能 性 があります これを 回 避 するため 弊 社 では Create! Form に 印 刷 コントロールを 含 める 他 に 弊 社 サイト から 有 効 な 証 明 書 が 電 子 署 名 された 印 刷 コントロールをダウンロードできるようにしていま す 証 明 書 の 有 効 期 限 を 過 ぎたモジュールを 提 供 することはありませんが 導 入 の 時 期 によって は 証 明 書 の 有 効 期 限 が 間 近 という 場 合 があります 4
第 1 章 Create! Form Web クライアント 印 刷 処 理 の 流 れ この 節 では 前 節 の 印 刷 方 法 (A1 A2 B1 B2) ごとに サーバ クライアントでどのような 処 理 が 行 われるかを 紹 介 します 構 築 するシステムに 関 係 する 項 目 を 参 照 してください 1.PDF 表 示 印 刷 PDF 表 示 印 刷 では サーバで 生 成 された PDF ファイルをブラウザに 表 示 して 印 刷 処 理 を 行 うの で サーバ 側 には FormCast ランタイム(または FormCollect ランタイム)が 導 入 されている 必 要 があります 1クライアントは FormCast ランタイム(あるいは FormCollect ランタイム)を 起 動 するス クリプトにアクセスします 2リクエストを 受 けたスクリプトは ランタイムを 実 行 するのに 必 要 なデータソースを 参 照 あるいは 作 成 し ランタイムを 実 行 します 5
第 1 章 Create! Form Web クライアント 印 刷 3ランタイムは サーバ 上 のデータソースと 資 源 ファイルから PDF ファイルを 作 成 します 4 生 成 された PDF ファイルは ブラウザを 通 してクライアント 側 に 表 示 されます 5ブラウザに 表 示 された PDF ファイルを 印 刷 メニューから 印 刷 を 実 行 します 基 本 的 な 流 れは 以 上 ですが 印 刷 を 実 行 するためにはクライアントマシンに Adobe Acrobat あるいは Adobe Reader が 導 入 されている 必 要 があります またブラウザに 関 しては Adobe Acrobat あるいは Adobe Reader のアドインをサポートする Web ブラウザでなければなりません 2.PDF 非 表 示 印 刷 PDF 非 表 示 印 刷 では サーバで 生 成 された PDF ファイルを 印 刷 コントロールでダウンロードし て 印 刷 処 理 を 行 うので サーバ 側 には FormCast ランタイム(または FormCollect ランタイム) が 導 入 されている 必 要 があります また 印 刷 コントロールは ActiveX コントロールなので InternetExplorer バージョン 5 以 上 ( 以 下 IE)が 必 要 になります 6
第 1 章 Create! Form Web クライアント 印 刷 1 object タグに 印 刷 コントロールが 埋 め 込 まれた Web ページをクライアントが IE で 参 照 する と 印 刷 コントロールはクライアントマシンにダウンロード インストールされます 2その Web ページから 印 刷 要 求 を 発 生 させます 例 えば Web ページ 上 のボタンをクリックした 場 合 等 に 印 刷 コントロールの API を 実 行 させ ることが 可 能 です 3 印 刷 コントロールは 設 定 されたプロパティ 値 を 元 に Web サーバ 上 のスクリプトにアクセス します 7
第 1 章 Create! Form Web クライアント 印 刷 4リクエストを 受 けたスクリプトは ランタイムを 実 行 するのに 必 要 なデータソースを 参 照 あるいは 作 成 し ランタイムを 実 行 します 5ランタイムは サーバ 上 のデータソースと 資 源 ファイルから PDF ファイルを 作 成 します 6 印 刷 コントロールは 生 成 された PDF ファイルをクライアントにダウンロードします 7 印 刷 コントロールは Adobe Acrobat あるいは Adobe Reader を 起 動 して ダウンロードし た PDF ファイルに 対 して 印 刷 処 理 を 実 行 します 基 本 的 な 流 れは 以 上 ですが 印 刷 を 実 行 するためにはクライアントマシンに Adobe Acrobat あるいは Adobe Reader が 導 入 されている 必 要 があります 8
第 1 章 Create! Form Web クライアント 印 刷 3.ブラウザ 標 準 印 刷 ブラウザ 標 準 印 刷 では サーバで 生 成 された EMF ファイルを 印 刷 コントロールでダウンロード して 印 刷 処 理 を 行 うので サーバ 側 には FormPrintStage ランタイムが 導 入 されている 必 要 が あります また 印 刷 コントロールは ActiveX コントロールなので InternetExplorer バージョン 5 以 上 ( 以 下 IE)が 必 要 になります 1 object タグに 印 刷 コントロールが 埋 め 込 まれた Web ページをクライアントが IE で 参 照 する と 印 刷 コントロールはクライアントマシンにダウンロード インストールされます 2その Web ページから 印 刷 要 求 を 発 生 させます 例 えば Web ページ 上 のボタンをクリックした 場 合 等 に 印 刷 コントロールの API を 実 行 させ ることが 可 能 です 3 印 刷 コントロールは 設 定 されたプロパティ 値 を 元 に Web サーバ 上 のスクリプトにアクセス します 9
第 1 章 Create! Form Web クライアント 印 刷 4リクエストを 受 けたスクリプトは ランタイムを 実 行 するのに 必 要 なデータソースを 参 照 あるいは 作 成 し ランタイムを 実 行 します 5ランタイムは サーバ 上 のデータソースと 資 源 ファイルから EMF ファイルを 作 成 します 6 印 刷 コントロールは 生 成 された EMF ファイルをクライアントにダウンロードします 7 印 刷 コントロールは ダウンロードした EMF ファイルを 使 用 して 印 刷 を 実 行 します EMF ファイルは 圧 縮 して 転 送 することも 可 能 です 10
第 1 章 Create! Form Web クライアント 印 刷 4.ブラウザ 任 意 指 定 印 刷 ブラウザ 任 意 指 定 印 刷 では サーバで 生 成 された CCD ファイルを 印 刷 コントロールでダウン ロードして 印 刷 処 理 を 行 うので サーバ 側 には FormPrintStage Web ランタイムが 導 入 されて いる 必 要 があります CCD ファイルとは Create! Form 資 源 ファイルやデータソースといった 帳 票 イメージの " 素 " を 圧 縮 し 一 つにまとめたものです この CCD ファイルを 解 凍 して 印 刷 するには FormPrintStage WebClient ランタイム( 以 下 クライアントランタイム)が 必 要 です 従 って クライアント 側 にはクライアントランタイムを 導 入 しておきます また 印 刷 コントロールは ActiveX コントロールなので InternetExplorer バージョン 5 以 上 ( 以 下 IE)が 必 要 になります 1 object タグに 印 刷 コントロールが 埋 め 込 まれた Web ページをクライアントが IE で 参 照 する と 印 刷 コントロールはクライアントマシンにダウンロード インストールされます 2その Web ページから 印 刷 要 求 を 発 生 させます 例 えば Web ページ 上 のボタンをクリックした 場 合 等 に 印 刷 コントロールの API を 実 行 させ ることが 可 能 です 3 印 刷 コントロールは 設 定 されたプロパティ 値 を 元 に Web サーバ 上 のスクリプトにアクセス します 11
第 1 章 Create! Form Web クライアント 印 刷 4リクエストを 受 けたスクリプトは ランタイムを 実 行 するのに 必 要 なデータソースを 参 照 あるいは 作 成 し ランタイムを 実 行 します 5ランタイムは サーバ 上 のデータソースと 資 源 ファイルから CCD ファイルを 作 成 します 6 印 刷 コントロールは 生 成 された CCD ファイルをクライアントにダウンロードします 7 印 刷 コントロールは クライアントランタイムを 起 動 し ダウンロードした CCD ファイルを 使 用 して 指 定 されたプリンタに 印 刷 を 実 行 します 12
第 1 章 Create! Form Web クライアント 印 刷 クライアントランタイムは クライアントに 保 存 されている 印 刷 情 報 を 反 映 して 印 刷 します 例 えば 帳 票 "A" はプリンタ "B" に 帳 票 "C" はプリンタ "D" に 印 刷 するという 設 定 を 保 存 す ることができるので 帳 票 によって 複 数 のプリンタを 使 い 分 けることが 可 能 です 設 定 できる 印 刷 情 報 は 以 下 の 通 りです 出 力 するプリンタ 印 刷 部 数 両 面 印 刷 給 紙 トレイ 排 紙 トレイ 拡 大 / 縮 小 解 像 度 出 力 位 置 の 補 正 また CCD ファイルは PDF ファイルや EMF ファイルに 比 べてサイズが 小 さいため ネットワー クのトラフィック 量 を 軽 減 させることが 可 能 です 従 って 1000 ページのような 大 量 印 刷 をクライアントで 印 刷 することも 十 分 可 能 になります << 参 考 >> CCD ファイルはクライアントに 保 存 することも 可 能 です これにより サーバ 側 は 印 刷 要 求 を 受 けた 際 クライアントには 固 定 のデータ(CCD ファイル)が 保 存 されているので 可 変 のデータのみ 送 信 するという 処 理 が 実 現 できるため トラフィック 量 はさらに 軽 減 されることになります 13
第 2 章 サンプル 実 行 第 2 章 サンプル 実 行 この 章 では 印 刷 方 法 ごとにサンプルを 使 用 して 実 装 の 方 法 について 説 明 します 14
第 2 章 サンプル 実 行 共 通 の 設 定 各 印 刷 方 法 ごとに Web ページや スクリプトの 記 述 は 異 なる 部 分 がありますが サーバの 設 定 などは 共 通 している 部 分 もあるので 共 通 設 定 に 関 しては ここで 説 明 します 1.Web サーバの 設 定 1-1.サーバマシンの 構 成 このサンプルの 環 境 は Windows 2000 Server + IIS 5.0 + ASP です また 印 刷 方 法 ごとに 対 応 したランタイム 製 品 が 導 入 され 正 常 に 動 作 しているものとします ここでは ホスト 名 は "testsv" になっています 必 要 に 応 じて HTML ファイルやスクリプトに 記 述 する URL を 変 更 してください 1-2.コンテンツの 配 置 ここでは 以 下 のようにファイルを 配 置 します C:\ createform/ index.htm HTML ファイル( 1) run.asp ランタイム 実 行 スクリプト( 2) bin/ CWebClient.ocx 印 刷 コントロール( 3) printings/ 印 刷 データ 生 成 ディレクトリ( 4) resource/ cwork/ ランタイム 作 業 ディレクトリ datamap/ form/ style/ data/ test.csv テキストファイルディレクトリ ランタイム 実 行 に 使 用 するデータソース 1: HTML ファイルは 印 刷 要 求 を 発 行 する Web ページになりますので 各 印 刷 方 法 によって 内 容 は 変 わり ます 2: ランタイム 実 行 スクリプトは 各 印 刷 方 法 によって 実 行 するランタイムが 異 なります PDF 表 示 印 刷 PDF 非 表 示 印 刷 であれば FormCast ランタイム(または FormCollect ランタイ ム) ブラウザ 標 準 印 刷 であれば FormPrintStage ランタイム ブラウザ 任 意 指 定 印 刷 であれば FormPrintStage Web ランタイムをスクリプトで 起 動 します 15
第 2 章 サンプル 実 行 3: CWebClient.ocx は 印 刷 コントロールのファイル 名 になります Create! Form 導 入 ディレクトリ \lib ディレクトリに 保 存 されているので c:\createform\bin ディ レクトリにコピーしてください ただし 印 刷 コントロールを 使 用 しない PDF 表 示 印 刷 においては CWebClient.ocx を 配 置 する 必 要 はありません 4: 印 刷 データ 生 成 ディレクトリには 各 ランタイムが 生 成 するファイル(PDF ファイル EMF ファイル CCD ファイル)が 格 納 されます 1-3. 仮 想 ディレクトリの 作 成 インターネット サービス マネージャ を 使 用 して 仮 想 ディレクトリを 作 成 します testsv サーバ 上 の C:\createform ディレクトリをエイリアスとして createform で 設 定 し ます 図 :IIS マネージャ 2.クライアントの 設 定 2-1.InternetExplorer のセキュリティ 設 定 ここで 説 明 する 内 容 は PDF 非 表 示 印 刷 ブラウザ 標 準 印 刷 ブラウザ 任 意 指 定 印 刷 での Web クライアント 印 刷 を 実 装 する 場 合 にのみ 関 係 します PDF 表 示 印 刷 で 実 装 する 場 合 は 読 み 飛 ばしても 問 題 ありません 印 刷 コントロールを 使 用 した Web クライアント 印 刷 において クライアントマシンは 初 めに InternetExplorer( 以 下 IE)で 印 刷 コントロールを 起 動 する Web ページにアクセスします この 際 クライアントマシンの IE の 設 定 によっては 次 のようなメッセージが 表 示 されます 図 : 警 告 ダイアログ 16
第 2 章 サンプル 実 行 この 場 合 印 刷 コントロールはインストールされませんので IE の 設 定 を 変 更 する 必 要 があ ります IE( 以 下 の 説 明 では IE6 を 使 用 しています)の [ ツール ] メニューから [ インターネット オ プション ] を 選 択 します [ セキュリティ ] タブを 選 択 し [ レベルのカスタマイズ ] を 選 択 します このとき ゾーンが 正 しく 選 択 されていることを 確 認 してください [ActiveX コントロールとプラグイン ] の [ 署 名 済 み ActiveX コントロールのダウンロード ] の 設 定 を [ ダイアログを 表 示 する ] か [ 有 効 にする ] に 設 定 します 図 :セキュリティの 設 定 [ 有 効 にする ] を 選 択 した 場 合 は 自 動 的 にインストールされます [ ダイアログを 表 示 する ] を 選 択 した 場 合 インストールする 前 に 次 のようなメッセージが 表 示 されます 図 :セキュリティ 警 告 ダイアログ ここで [ はい ] を 選 択 すると 印 刷 コントロールがインストールされます また 印 刷 コントロールのプロパティやメソッドにアクセスした 際 に 下 のような 警 告 が 出 る 場 合 もあります 図 : 警 告 ダイアログ この 場 合 も セキュリティの 設 定 を 変 更 する 必 要 があります 先 ほどと 同 様 に [ActiveX コントロールとプラグイン ] で 適 切 な 設 定 を 行 ってください 次 節 からは 各 印 刷 方 法 に 応 じたサンプルの 説 明 をしますので 構 築 するシステムに 関 係 する 節 を 参 照 してください 17
第 2 章 サンプル 実 行 PDF 表 示 印 刷 1."index.htm" 例 <html> <head> <title>pdf 表 示 印 刷 </title> <script language="javascript"> function ShowPdf() { window.open("http://testsv/createform/run.asp?outputfilename=test.pdf", "_blank"); } </script> </head> <body> <input type="button" value="pdf 表 示 印 刷 " onclick="showpdf()"/> </body> </html> "index.htm" は クライアントがブラウザに 読 み 込 んで 印 刷 要 求 を 発 行 する Web ページにな ります "PDF 表 示 印 刷 " というボタンをクリックすることで JavaScript の "ShowPdf" という 関 数 を 実 行 します "ShowPdf" 関 数 は FormCast ランタイムを 実 行 するためのスクリプト "run.asp" に 画 面 遷 移 す るためのものです これにより ブラウザ 上 から "PDF 表 示 印 刷 " ボタンをクリックすることで サーバに 対 して PDF 生 成 要 求 を 発 行 することが 可 能 です "index.htm" は c:\createform ディレクトリ 直 下 に 配 置 します << 注 意 >> open 関 数 の 第 1 引 数 に 指 定 している URL の GET 文 字 列 "OutputFileName=test.pdf" は サーバの FormCast ランタイムが 生 成 する PDF ファイルの 名 前 として run.asp に 渡 しています このままでは どのクライアントからのアクセスでも "test.pdf" という PDF ファイルを 生 成 してし まうため アクセス 状 況 によってはクライアントが 印 刷 処 理 を 完 了 する 前 に PDF ファイルが 上 書 き されてしまう 可 能 性 があります 従 って 実 際 には PDF ファイル 名 は クライアントごとにユニークな 文 字 列 を 指 定 する 必 要 がありま すので 注 意 してください 2."run.asp" 例 <%@ Language=VBScript%> <% Dim objcast 18
第 2 章 サンプル 実 行 Dim strcurpath Dim strtextfile Dim strcworkpath Dim strpdfpath Dim strcmd Dim ErrNum ' 実 行 ディレクトリ ' テキストファイル 名 ' Create! Form 作 業 ディレクトリ ' PDF ファイルパス ' FormCast ランタイム 実 行 コマンドパラメータ ' 戻 り 値 strcurpath = "c:\resource" '============================================================== ' FormCast ランタイム 用 テキストファイル 作 成 '============================================================== ' 通 常 ここで 動 的 にテキストファイルを 生 成 しますが ' このサンプルでは 既 存 のファイルを 指 定 します strtextfile = strcurpath & "\data\test.csv" '============================================================== ' FormCast ランタイムの 実 行 '============================================================== Set objcast = CreateObject("CCastCOM.CCast") strcworkpath = strcurpath & "\cwork" strpdfpath = "c:\createform\printings\" & Request.QueryString("OutputFileName" ) ' コマンドの 作 成 strcmd = "-D" & strcworkpath & " -sschoollife.sty -o" & strpdfpath & " " & strtextfile ' FormCast ランタイム 実 行 ( 第 二 パラメータの 8705 は ' CPW_HIDE ERW_HIDE ERL_ENABLE の 指 定 と 同 じです ) ErrNum = objcast.ccastexec( 0, 8705, "", strcmd ) ' オブジェクトの 解 放 Set objcast = Nothing ' 生 成 された PDF ファイルをリダイレクトで 返 す Response.Redirect("printings/" & Request.QueryString("OuptutFileName")) %> "run.asp" は FormCast ランタイムを 呼 び 出 すスクリプトです FormCast ランタイムは COM コンポーネントを 利 用 して 呼 び 出 しています "index.htm" から GET 文 字 列 で 渡 された "OutputFileName" を 使 用 して PDF ファイル 名 を 設 定 していることが 確 認 できます FormCast ランタイム 実 行 後 生 成 された PDF ファイルをリダイレクトでクライアントに 返 し ています これにより クライアントは PDF ファイルをブラウザで 表 示 できることになります "run.asp" は C:\createform ディレクトリ 直 下 に 配 置 します 19
第 2 章 サンプル 実 行 3.クライアントからの 実 行 それでは 実 際 に Web クライアント 印 刷 を 実 行 します ブラウザから "http://testsv/createform/index.htm" にアクセスします ブラウザに 表 示 された "PDF 表 示 印 刷 " ボタンをクリックします 新 しいウィンドウが 起 動 し "run.asp" にアクセスします サーバ 側 で FormCast ランタイムの 実 行 が 終 了 すると 作 成 された PDF ファイルがリダイレク トされるので クライアント 側 に PDF ファイルが 表 示 されます Adobe Acrobat あるいは Adobe Reader がインストールされており アドイン 機 能 が 有 効 なブラウザを 使 用 している 場 合 のみです Adobe Acrobat あるいはAdobe Readerの[ 印 刷 ]ボタンをクリックして 印 刷 処 理 を 実 行 します 以 上 で PDF 表 示 印 刷 による Web クライアント 印 刷 のサンプル 実 行 は 終 了 です 20
第 2 章 サンプル 実 行 PDF 非 表 示 印 刷 1."index.htm" 例 <html> <head> <title>pdf 非 表 示 印 刷 </title> <object id="obj" classid="clsid:f58deea6-72e2-4811-8be4-47796a7e804b" codebase="http://testsv/createform/bin/cwebclient.ocx#version=7,1,0,0"> </object> <script language="javascript"> function KickPrintExecutePdf() { obj.createprintingdatascripturl = "http://testsv/createform/run.asp"; obj.printexecutepdf(); } </script> </head> <body> <input type="button" value="pdf 非 表 示 印 刷 " onclick="kickprintexecutepdf()" /> </body> </html> "index.htm" は クライアントが IE に 読 み 込 んで 印 刷 要 求 を 発 行 する Web ページになります 印 刷 コントロールをクライアントマシンにダウンロード インストールするため object タ グが 記 述 されています 各 属 性 値 の 意 味 は 以 下 の 通 りです id: 印 刷 コントロールオブジェクトの 変 数 名 として 使 用 され 任 意 の 変 数 名 を 指 定 できます classid: 固 定 値 で clsid:f58deea6-72e2-4811-8be4-47796a7e804b を 記 述 します codebase: 印 刷 コントロールが 置 かれているディレクトリの URL と バージョン 番 号 を 追 加 した 形 式 で 記 述 します 現 在 ご 使 用 のバージョン 番 号 を 記 述 してください object タグを 記 述 することにより クライアントマシンに 印 刷 コントロールがインストール されていない 場 合 または codebase で 記 述 したバージョンよりも 古 いコントロールがインス トールされている 場 合 Web サーバより 印 刷 コントロールがダウンロードされクライアントマ シンにインストールされます "PDF 非 表 示 印 刷 " というボタンをクリックすることで JavaScript の "KickPrintExecutePdf" という 関 数 を 実 行 します "KickPrintExecutePdf" 関 数 は 印 刷 コントロールのプロパティやメソッドを 実 行 する 役 割 を 21
第 2 章 サンプル 実 行 果 たします ここで 使 用 されている 印 刷 コントロールのプロパティ メソッドについて 簡 単 に 説 明 します プロパティ CreatePrintingDataScriptUrl は FormCast ランタイムを 実 行 するスクリプト の URL を 指 定 します 今 回 は "run.asp" が FormCast ランタイムを 実 行 するスクリプトなので "http://testsv/ createform/run.asp" を 指 定 することになります メソッド PrintExecutePdf は 印 刷 処 理 を 実 行 するメソッドです メソッド PrintExecutePdf が 呼 び 出 されたタイミングで プロパティ CreatePrintingData ScriptUrl で 指 定 されたスクリプトにアクセスし PDF ファイルをダウンロード 印 刷 実 行 ま でを 行 います 処 理 結 果 に 応 じたステータスコード( 数 値 )と 文 字 列 がダイアログに 表 示 されます 戻 り 値 が "0" の 場 合 は 正 常 終 了 を 表 します 印 刷 コントロールの 詳 細 については 第 3 章 印 刷 コントロール 仕 様 を 参 照 してください "index.htm" は c:\createform ディレクトリ 直 下 に 配 置 します 2."run.asp" 例 <%@ Language=VBScript%> <% Dim objcast Dim strcurpath Dim strtextfile Dim strcworkpath Dim strpdfpath Dim strcmd Dim ErrNum ' 実 行 ディレクトリ ' テキストファイル 名 ' Create! Form 作 業 ディレクトリ ' PDF ファイルパス ' FormCast ランタイム 実 行 コマンドパラメータ ' 戻 り 値 strcurpath = "c:\resource" '============================================================== ' FormCast ランタイム 用 テキストファイル 作 成 '============================================================== ' 通 常 ここで 動 的 にテキストファイルを 生 成 しますが ' このサンプルでは 既 存 のファイルを 指 定 します strtextfile = strcurpath & "\data\test.csv" '============================================================== ' FormCast ランタイムの 実 行 '============================================================== Set objcast = CreateObject("CCastCOM.CCast") strcworkpath = strcurpath & "\cwork" 22
第 2 章 サンプル 実 行 strpdfpath = "c:\createform\printings\" & Request.Form("OutputFileName") ' コマンドの 作 成 strcmd = "-D" & strcworkpath & " -sschoollife.sty -o" & strpdfpath & " " & strtextfile ' FormCast ランタイム 実 行 ( 第 二 パラメータの 8705 は ' CPW_HIDE ERW_HIDE ERL_ENABLE の 指 定 と 同 じです ) ErrNum = objcast.ccastexec( 0, 8705, "", strcmd ) ' オブジェクトの 解 放 Set objcast = Nothing ' 生 成 された PDF ファイルをリダイレクトで 返 す Response.Redirect("printings/" & Request.Form("OuptutFileName")) %> "run.asp" は FormCast ランタイムを 呼 び 出 すスクリプトです FormCast ランタイムは COM コンポーネントを 利 用 して 呼 び 出 しています 変 数 "strpdfpath" に 注 目 してください POST 文 字 列 で "OutputFileName" から PDF ファイル 名 を 取 得 しています "OutputFileName" は 印 刷 コントロールが "run.asp" に 対 して 自 動 で 送 信 したものです PDF ファイル 名 を 固 定 なものにしてしまうと 複 数 のクライアントからアクセスされた 場 合 PDF ファイルが 上 書 きされてしまう 可 能 性 があります その 問 題 を 解 決 するためには 生 成 する PDF ファイルにユニークなファイル 名 を 付 けなければ なりません そこで 印 刷 コントロールでは ユニークな 文 字 列 を 作 成 し それを "OutputFileName" で 送 信 しています また 印 刷 コントロールは "OutputFileName" で 送 信 した PDF ファイル 名 を 印 刷 対 象 の PDF ファ イルと 認 識 します 以 上 の 理 由 から 特 別 な 状 況 がない 限 り このファイル 名 を 使 用 して PDF ファイルを 生 成 する ことを 推 奨 します 今 回 は "OutputFileName" を POST 文 字 列 で 送 信 (POST メソッドによる 送 信 )しましたが 印 刷 コントロールのプロパティ DataSendMethod に "GET" を 指 定 することで GET 文 字 列 と して 送 信 (GET メソッドによる 送 信 )することも 可 能 です 詳 細 は 第 3 章 印 刷 コントロール 仕 様 で 説 明 しています FormCast ランタイム 実 行 後 生 成 された PDF ファイルをリダイレクトでクライアントに 返 し ています これにより 印 刷 コントロールは PDF ファイルを 受 け 取 り クライアント 側 で 印 刷 処 理 を 実 行 することになります "run.asp" は c:\createform ディレクトリ 直 下 に 配 置 します 23
第 2 章 サンプル 実 行 3.クライアントからの 実 行 それでは 実 際 に Web クライアント 印 刷 を 実 行 します IE から "http://testsv/createform/index.htm" にアクセスします IE に 表 示 された "PDF 非 表 示 印 刷 " ボタンをクリックします 印 刷 コントロールが 起 動 し "run.asp" にアクセスします サーバ 側 で FormCast ランタイムの 実 行 が 終 了 すると 作 成 された PDF ファイルがリダイレク トされ 印 刷 コントロールは PDF ファイルをダウンロードします 印 刷 コントロールは PDF ファイルのダウンロードを 終 了 すると Adobe Acrobat あるいは Adobe Reader を 起 動 し PDF ファイルを 使 用 して 印 刷 処 理 を 実 行 します 印 刷 処 理 は 通 常 使 用 するプリンタ に 設 定 されているプリンタに 対 して 実 行 されます 印 刷 情 報 も 通 常 使 用 するプリンタ で 設 定 されているデフォルトの 設 定 値 が 使 用 されます Adobe Acrobat あるいは Adobe Reader がインストールされている 必 要 があります << 注 意 1 >> "index.htm" を IE でアクセスした 際 ( 印 刷 コントロールのインストール 時 )や 印 刷 コントロールの プロパティやメソッドにアクセスした 際 に 警 告 ダイアログが 表 示 されることがあります これは IE の 設 定 によるものなので 本 章 の 共 通 の 設 定 から 2.クライアントの 設 定 を 参 照 してください << 注 意 2 >> 印 刷 設 定 はすでに 設 定 されている Acrobat の 印 刷 設 定 が 適 用 されます 印 刷 する PDF ファイルのフォームサイズとプリンタで 選 択 されている 用 紙 サイズが 異 なる 場 合 あら かじめ 以 下 の 操 作 を 行 っておくことにより 用 紙 サイズをあわせて 印 刷 することができます Acrobat 4 の 場 合 Acrobat の [ 印 刷 ] ダイアログボックスにある [ 用 紙 サイズに 合 わせる ] チェックボックスにチェッ クしてください Acrobat 5 の 場 合 Acrobat の [ 印 刷 ] ダイアログボックスにある [ 用 紙 サイズに 合 わせてページを 拡 大 ] と [ 用 紙 サイ ズに 合 わせてページを 縮 小 ] チェックボックスをチェックしてください Acrobat 6 の 場 合 Acrobat の [ 印 刷 ] ダイアログボックスにある [ ページ 処 理 ] の [ ページの 拡 大 / 縮 小 ] リストから [ 用 紙 に 合 わせる ] を 選 択 してください Acrobat 7 につていは 現 在 検 証 中 です 最 新 の 対 応 状 況 については 弊 社 サポート Web サイトでご 覧 いただくか 弊 社 サポート 担 当 までご 連 絡 ください 弊 社 サポート Web サイト: http://www.createform.net/support&service/ 弊 社 サポート 担 当 : support-c@iftc.co.jp 以 上 で PDF 非 表 示 印 刷 による Web クライアント 印 刷 のサンプル 実 行 は 終 了 です 印 刷 コントロールの 仕 様 については 第 3 章 印 刷 コントロール 仕 様 を 参 照 してください また 第 4 章 印 刷 コントロールの 応 用 には 印 刷 コントロールの 便 利 な 使 用 方 法 を 説 明 し ています 24
第 2 章 サンプル 実 行 ブラウザ 標 準 印 刷 1."index.htm" 例 <html> <head> <title> ブラウザ 標 準 印 刷 </title> <object id="obj" classid="clsid:f58deea6-72e2-4811-8be4-47796a7e804b" codebase="http://testsv/createform/bin/cwebclient.ocx#version=7,1,0,0"> </object> <script language="javascript"> function KickPrintExecute() { obj.createprintingdatascripturl = "http://testsv/createform/run.asp"; obj.printexecute(); } </script> </head> <body> <input type="button" value=" ブラウザ 標 準 印 刷 " onclick="kickprintexecute()" /> </body> </html> "index.htm" は クライアントが IE に 読 み 込 んで 印 刷 要 求 を 発 行 する Web ページになります 印 刷 コントロールをクライアントマシンにダウンロード インストールするため object タ グが 記 述 されています 各 属 性 値 の 意 味 は 以 下 の 通 りです id: 印 刷 コントロールオブジェクトの 変 数 名 として 使 用 され 任 意 の 変 数 名 を 指 定 できます classid: 固 定 値 で clsid:f58deea6-72e2-4811-8be4-47796a7e804b を 記 述 します codebase: 印 刷 コントロールが 置 かれているディレクトリの URL と バージョン 番 号 を 追 加 した 形 式 で 記 述 します 現 在 ご 使 用 のバージョン 番 号 を 記 述 してください object タグを 記 述 することにより クライアントマシンに 印 刷 コントロールがインストール されていない 場 合 または codebase で 記 述 したバージョンよりも 古 いコントロールがインス トールされている 場 合 Web サーバより 印 刷 コントロールがダウンロードされクライアントマ シンにインストールされます " ブラウザ 標 準 印 刷 " というボタンをクリックすることで JavaScript の "KickPrintExecute" という 関 数 を 実 行 します 25
第 2 章 サンプル 実 行 "KickPrintExecute" 関 数 は 印 刷 コントロールのプロパティやメソッドを 実 行 する 役 割 を 果 たします ここで 使 用 されている 印 刷 コントロールのプロパティ メソッドについて 簡 単 に 説 明 します プロパティ CreatePrintingDataScriptUrl は FormPrintStage ランタイムを 実 行 するスク リプトの URL を 指 定 します 今 回 は "run.asp" が FormPrintStage ランタイムを 実 行 するスクリプトなので "http:// testsv/createform/run.asp" を 指 定 することになります メソッド PrintExecute は 印 刷 処 理 を 実 行 するメソッドです メソッド PrintExecute が 呼 び 出 されたタイミングで プロパティ CreatePrintingDataSc ripturl で 指 定 されたスクリプトにアクセスし EMF ファイルをダウンロード 印 刷 実 行 まで を 行 います 処 理 結 果 に 応 じたステータスコード( 数 値 )と 文 字 列 がダイアログに 表 示 されます 戻 り 値 が "0" の 場 合 は 正 常 終 了 を 表 します 印 刷 コントロールの 詳 細 については 第 3 章 印 刷 コントロール 仕 様 を 参 照 してください "index.htm" は c:\createform ディレクトリ 直 下 に 配 置 します 2."run.asp" 例 <%@ Language=VBScript%> <% Dim objprintst Dim strcurpath Dim strtextfile Dim strcworkpath Dim stremfpath Dim strcmd Dim ErrNum ' 実 行 ディレクトリ ' テキストファイル 名 ' Create! Form 作 業 ディレクトリ ' EMF ファイルパス ' FormPrintStage ランタイム 実 行 コマンドパラメータ ' 戻 り 値 strcurpath = "c:\resource" '============================================================== ' FormPrintStage ランタイム 用 テキストファイル 作 成 '============================================================== ' 通 常 ここで 動 的 にテキストファイルを 生 成 しますが ' このサンプルでは 既 存 のファイルを 指 定 します strtextfile = strcurpath & "\data\test.csv" '============================================================== ' FormPrintStage ランタイムの 実 行 '============================================================== Set objprintst = CreateObject("CPrintSTCOM.CPrintST") 26
第 2 章 サンプル 実 行 strcworkpath = strcurpath & "\cwork" stremfpath = "c:\createform\printings\" & Request.Form("OutputFileName") ' コマンドの 作 成 strcmd = "-D" & strcworkpath & " -sschoollife.sty -o" & stremfpath & " -c " & strtextfile ' FormPrintStage ランタイム 実 行 ( 第 二 パラメータの 8705 は ' CPW_HIDE ERW_HIDE ERL_ENABLE の 指 定 と 同 じです ) ErrNum = objprintst.cprintstexec( 0, 8705, "", strcmd ) ' オブジェクトの 解 放 Set objprintst = Nothing ' 生 成 された EMF ファイルをリダイレクトで 返 す Response.Redirect("printings/" & Request.Form("OuptutFileName")) %> "run.asp" は FormPrintStage ランタイムを 呼 び 出 すスクリプトです FormPrintStage ランタイムは COM コンポーネントを 利 用 して 呼 び 出 しています 変 数 "stremfpath" に 注 目 してください POST 文 字 列 で "OutputFileName" から EMF ファイル 名 を 取 得 しています "OutputFileName" は 印 刷 コントロールが "run.asp" に 対 して 自 動 で 送 信 したものです EMF ファイル 名 を 固 定 なものにしてしまうと 複 数 のクライアントからアクセスされた 場 合 EMF ファイルが 上 書 きされてしまう 可 能 性 があります その 問 題 を 解 決 するためには 生 成 する EMF ファイルにユニークなファイル 名 を 付 けなければ なりません そこで 印 刷 コントロールでは ユニークな 文 字 列 を 作 成 し それを "OutputFileName" で 送 信 しています また 印 刷 コントロールは "OutputFileName" で 送 信 した EMF ファイル 名 を 印 刷 対 象 の EMF ファ イルと 認 識 します 以 上 の 理 由 から 特 別 な 状 況 がない 限 り このファイル 名 を 使 用 して EMF ファイルを 生 成 する ことを 推 奨 します 今 回 は "OutputFileName" を POST 文 字 列 で 送 信 (POST メソッドによる 送 信 )しましたが 印 刷 コントロールのプロパティ DataSendMethod に "GET" を 指 定 することで GET 文 字 列 と して 送 信 (GET メソッドによる 送 信 )することも 可 能 です 詳 細 は 第 3 章 印 刷 コントロール 仕 様 で 説 明 しています FormPrintStage ランタイム 実 行 後 生 成 された EMF ファイルをリダイレクトでクライアント に 返 しています これにより 印 刷 コントロールは EMF ファイルを 受 け 取 り クライアント 側 で 印 刷 処 理 を 実 行 することになります "run.asp" は c:\createform ディレクトリ 直 下 に 配 置 します 27
第 2 章 サンプル 実 行 3.クライアントからの 実 行 それでは 実 際 に Web クライアント 印 刷 を 実 行 します IE から "http://testsv/createform/index.htm" にアクセスします IE に 表 示 された " ブラウザ 標 準 印 刷 " ボタンをクリックします 印 刷 コントロールが 起 動 し "run.asp" にアクセスします サーバ 側 で FormPrintStage ランタイムの 実 行 が 終 了 すると 作 成 された EMF ファイルがリダ イレクトされ 印 刷 コントロールは EMF ファイルをダウンロードします 印 刷 コントロールは EMF ファイルのダウンロードを 終 了 すると EMF ファイルを 使 用 して 印 刷 処 理 を 実 行 します 印 刷 処 理 は 通 常 使 用 するプリンタ に 設 定 されているプリンタに 対 して 実 行 されます 印 刷 情 報 も 通 常 使 用 するプリンタ で 設 定 されているデフォルトの 設 定 値 が 使 用 されます << 注 意 >> "index.htm" を IE でアクセスした 際 ( 印 刷 コントロールのインストール 時 )や 印 刷 コントロールの プロパティやメソッドにアクセスした 際 に 警 告 ダイアログが 表 示 されることがあります これは IE の 設 定 によるものなので 本 章 の 共 通 の 設 定 から 2.クライアントの 設 定 を 参 照 してください 以 上 で ブラウザ 標 準 印 刷 による Web クライアント 印 刷 のサンプル 実 行 は 終 了 です 印 刷 コントロールの 仕 様 については 第 3 章 印 刷 コントロール 仕 様 を 参 照 してください また 第 4 章 印 刷 コントロールの 応 用 には 印 刷 コントロールの 便 利 な 使 用 方 法 を 説 明 し ています 28
第 2 章 サンプル 実 行 ブラウザ 任 意 指 定 印 刷 1."index.htm" 例 <html> <head> <title> ブラウザ 任 意 指 定 印 刷 </title> <object id="obj" classid="clsid:f58deea6-72e2-4811-8be4-47796a7e804b" codebase="http://testsv/createform/bin/cwebclient.ocx#version=7,1,0,0"> </object> <script language="javascript"> function KickPrintExecuteEx() { obj.createprintingdatascripturl = "http://testsv/createform/run.asp"; // 帳 票 名 (Style ファイル 名 )を 引 数 に 指 定 します obj.printexecuteex("schoollife"); } </script> </head> <body> <input type="button" value=" ブラウザ 任 意 指 定 印 刷 " onclick="kickprintexecutee x()" /> </body> </html> "index.htm" は クライアントが IE に 読 み 込 んで 印 刷 要 求 を 発 行 する Web ページになります 印 刷 コントロールをクライアントマシンにダウンロード インストールするため object タ グが 記 述 されています 各 属 性 値 の 意 味 は 以 下 の 通 りです id: 印 刷 コントロールオブジェクトの 変 数 名 として 使 用 され 任 意 の 変 数 名 を 指 定 できます classid: 固 定 値 で clsid:f58deea6-72e2-4811-8be4-47796a7e804b を 記 述 します codebase: 印 刷 コントロールが 置 かれているディレクトリの URL と バージョン 番 号 を 追 加 した 形 式 で 記 述 します 現 在 ご 使 用 のバージョン 番 号 を 記 述 してください object タグを 記 述 することにより クライアントマシンに 印 刷 コントロールがインストール されていない 場 合 または codebase で 記 述 したバージョンよりも 古 いコントロールがインス トールされている 場 合 Web サーバより 印 刷 コントロールがダウンロードされクライアントマ シンにインストールされます " ブ ラ ウ ザ 任 意 指 定 印 刷 " と い う ボ タ ン を ク リ ッ ク す る こ と で JavaScript の "KickPrintExecuteEx" という 関 数 を 実 行 します 29
第 2 章 サンプル 実 行 "KickPrintExecuteEx" 関 数 は 印 刷 コントロールのプロパティやメソッドを 実 行 する 役 割 を 果 たします ここで 使 用 されている 印 刷 コントロールのプロパティ メソッドについて 簡 単 に 説 明 します プロパティ CreatePrintingDataScriptUrl は FormPrintStage Web ランタイムを 実 行 する スクリプトの URL を 指 定 します 今 回 は "run.asp" が FormPrintStage Web ランタイムを 実 行 するスクリプトなので "http:// testsv/createform/run.asp" を 指 定 することになります メソッド PrintExecuteEx は 印 刷 処 理 を 実 行 するメソッドです 引 数 に 指 定 する 文 字 列 は サーバで 生 成 する 帳 票 の 帳 票 名 (Style ファイル 名 )です メソッド PrintExecuteEx が 呼 び 出 されたタイミングで プロパティ CreatePrintingData ScriptUrl で 指 定 されたスクリプトにアクセスし CCD ファイルをダウンロード 印 刷 実 行 ま でを 行 います 処 理 結 果 に 応 じたステータスコード( 数 値 )と 文 字 列 がダイアログに 表 示 されます 戻 り 値 が "0" の 場 合 は 正 常 終 了 を 表 します 印 刷 コントロールの 詳 細 については 第 3 章 印 刷 コントロール 仕 様 を 参 照 してください "index.htm" は c:\createform ディレクトリ 直 下 に 配 置 します 2."run.asp" 例 <%@ Language=VBScript%> <% Dim objprintst Dim strcurpath Dim strtextfile Dim strcworkpath Dim strccdpath Dim strcmd Dim ErrNum ' 実 行 ディレクトリ ' テキストファイル 名 ' Create! Form 作 業 ディレクトリ ' EMF ファイルパス ' FormPrintStageWeb ランタイム 実 行 コマンドパラメータ ' 戻 り 値 strcurpath = "c:\resource" '============================================================== ' FormPrintStage Web ランタイム 用 テキストファイル 作 成 '============================================================== ' 通 常 ここで 動 的 にテキストファイルを 生 成 しますが ' このサンプルでは 既 存 のファイルを 指 定 します strtextfile = strcurpath & "\data\test.csv" '============================================================== ' FormPrintStage Web ランタイムの 実 行 '============================================================== 30
第 2 章 サンプル 実 行 Set objprintst = CreateObject("CPrintSTCOM.CPrintST") strcworkpath = strcurpath & "\cwork" strccdpath = "c:\createform\printings\" & Request.Form("OutputFileName") ' コマンドの 作 成 strcmd = "-D" & strcworkpath & " -s" & Request.Form("StyleName") & ".sty" & " -o" & strccdpath & " -c" & Request.Form("CcdFileOption") & " " & strtextfile ' FormPrintStageWeb ランタイム 実 行 ( 第 二 パラメータの 8705 は ' CPW_HIDE ERW_HIDE ERL_ENABLE の 指 定 と 同 じです ) ErrNum = objprintst.cpcompressexec( 0, 8705, "", strcmd ) ' オブジェクトの 解 放 Set objprintst = Nothing ' 生 成 された CCD ファイルをリダイレクトで 返 す Response.Redirect("printings/" & Request.Form("OuptutFileName")) %> "run.asp" は FormPrintStage Web ランタイムを 呼 び 出 すスクリプトです FormPrintStage Web ランタイムは COM コンポーネントを 利 用 して 呼 び 出 しています 変 数 "strccdpath" に 注 目 してください POST 文 字 列 で "OutputFileName" から CCD ファイル 名 を 取 得 しています "OutputFileName" は 印 刷 コントロールが "run.asp" に 対 して 自 動 で 送 信 したものです CCD ファイル 名 を 固 定 なものにしてしまうと 複 数 のクライアントからアクセスされた 場 合 CCD ファイルが 上 書 きされてしまう 可 能 性 があります その 問 題 を 解 決 するためには 生 成 する CCD ファイルにユニークなファイル 名 を 付 けなければ なりません そこで 印 刷 コントロールでは ユニークな 文 字 列 を 作 成 し それを "OutputFileName" で 送 信 しています また 印 刷 コントロールは "OutputFileName" で 送 信 した CCD ファイル 名 を 印 刷 対 象 の EMF ファ イルと 認 識 します 以 上 の 理 由 から 特 別 な 状 況 がない 限 り このファイル 名 を 使 用 して CCD ファイルを 生 成 する ことを 推 奨 します 今 回 は "OutputFileName" を POST 文 字 列 で 送 信 (POST メソッドによる 送 信 )しましたが 印 刷 コントロールのプロパティ DataSendMethod に "GET" を 指 定 することで GET 文 字 列 と して 送 信 (GET メソッドによる 送 信 )することも 可 能 です 以 下 に 紹 介 される "StyleName" "CcdFileOption" に 関 しても 同 様 です 詳 細 は 第 3 章 印 刷 コントロール 仕 様 で 説 明 しています コマンドの 作 成 で Style ファイルの 指 定 において POST 文 字 列 から "StyleName" を 取 得 して 31
第 2 章 サンプル 実 行 います "StyleName" から 取 得 する 文 字 列 は "index.htm" において 印 刷 コントロールのメソッド PrintExecuteEx の 引 数 に 指 定 されたものです これは クライアントが 印 刷 要 求 している 帳 票 の 種 類 とサーバで 出 力 する 帳 票 の 種 類 を 確 実 に 合 わせるためです ブラウザ 任 意 指 定 印 刷 においては クライアント 側 で 印 刷 する 帳 票 ごとに 印 刷 情 報 を 管 理 しているので クライアントの 要 求 する 帳 票 をサーバで 出 力 しなければなりません 従 って "StyleName" で 取 得 した 文 字 列 を Style ファイルに 指 定 することで この 問 題 を 解 決 することが 可 能 です またコマンドの 作 成 で POST 文 字 列 から "CcdFileOption" を 取 得 し "-c" オプションの 引 数 に 指 定 します "-c" オプションは FormPrintStage Web ランタイムが 出 力 する CCD ファイルの 形 式 を 設 定 す るものです "-c" オプションの 値 は クライアントの 要 求 に 合 わせて 指 定 します 印 刷 コントロールは クライアントの 印 刷 情 報 を 参 照 して クライアントの 要 求 に 合 わせた "-c" オプションの 値 を "CcdFileOption" として 送 信 します 従 って スクリプトでは "CcdFileOption" を 受 信 して そのまま "-c" オプションに 指 定 しな ければなりません "CcdFileOption" と "-c" オプションの 詳 細 については CCD ファイル 保 存 機 能 を 利 用 する を 参 照 してください FormPrintStage Web ランタイム 実 行 後 生 成 された CCD ファイルをリダイレクトでクライア ントに 返 しています これにより 印 刷 コントロールは CCD ファイルを 受 け 取 り クライアント 側 で 印 刷 処 理 を 実 行 することになります "run.asp" は c:\createform ディレクトリ 直 下 に 配 置 します 3.クライアントからの 実 行 それでは 実 際 に Web クライアント 印 刷 を 実 行 します IE から "http://testsv/createform/index.htm" にアクセスします IE に 表 示 された " ブラウザ 任 意 指 定 印 刷 " ボタンをクリックします 印 刷 コントロールが 起 動 し "run.asp" にアクセスします サーバ 側 で FormPrintStage Web ランタイムの 実 行 が 終 了 すると 作 成 された CCD ファイルが リダイレクトされ 印 刷 コントロールは CCD ファイルをダウンロードします 印 刷 コントロールは CCD ファイルのダウンロードを 終 了 すると FormPrintStage WebClient ランタイム( 以 下 クライアントランタイム)を 実 行 し CCD ファイルを 使 用 して 印 刷 処 理 を 実 行 します 印 刷 情 報 は 帳 票 の 種 類 ごとにクライアントに 保 存 されている 印 刷 情 報 を 反 映 します 今 回 は "SchoolLife" という 帳 票 が 指 定 されているので "SchoolLife" の 印 刷 情 報 を 参 照 し ます 今 回 "SchoolLife" の 印 刷 情 報 を 設 定 していないのですが 印 刷 コントロールのメソッド PrintExecuteEx 実 行 時 に 自 動 的 に 作 成 されます 自 動 的 に 作 成 された 印 刷 情 報 の 各 設 定 値 は 全 てデフォルト 値 となります 32
第 2 章 サンプル 実 行 印 刷 情 報 の 設 定 に 関 しては 後 述 の 第 5 章 FormPrintStageWebClient ランタイムとの 連 携 で 詳 しく 説 明 します << 注 意 >> "index.htm" を IE でアクセスした 際 ( 印 刷 コントロールのインストール 時 )や 印 刷 コントロールの プロパティやメソッドにアクセスした 際 に 警 告 ダイアログが 表 示 されることがあります これは IE の 設 定 によるものなので 本 章 の 2-1. 共 通 の 設 定 から 2.クライアントの 設 定 を 参 照 してください 以 上 で ブラウザ 任 意 指 定 印 刷 による Web クライアント 印 刷 のサンプル 実 行 は 終 了 です 印 刷 コントロールの 仕 様 については 第 3 章 印 刷 コントロール 仕 様 を 参 照 してください 第 4 章 印 刷 コントロールの 応 用 には 印 刷 コントロールの 便 利 な 使 用 方 法 を 説 明 していま す ブラウザ 任 意 指 定 印 刷 は 印 刷 コントロールとクライアントランタイムを 使 用 して 実 装 しま す 印 刷 コントロールとクライアントランタイムを 合 わせて 使 用 することで 強 力 な Web クライア ント 印 刷 を 行 うことが 可 能 になります 第 5 章 FormPrintStage WebClient ランタイムの 連 携 を 参 照 してみてください 様 々なシステムの 構 築 に 役 立 つはずです 33
第 3 章 印 刷 コントロール 仕 様 第 3 章 印 刷 コントロール 仕 様 この 章 では 印 刷 コントロールの 仕 様 について 説 明 します 34
第 3 章 印 刷 コントロール 仕 様 起 動 方 法 印 刷 コントロールの 実 行 には 次 のファイルを 利 用 します CWebClient.ocx このファイルは Create! Form 導 入 ディレクトリ 直 下 の lib ディレクトリにコピーされていま す 印 刷 コントロールは あらかじめ Web ページに 定 義 しておき この Web ページを IE が 読 み 込 んだ 際 に 起 動 します 起 動 後 に 印 刷 コントロールのプロパティ メソッドを 使 用 して Web クライアント 印 刷 を 実 行 し ます 35
第 3 章 印 刷 コントロール 仕 様 CWebClient のクラス 情 報 プロパティ:BSTR CreatePrintingDataScriptUrl 概 要 : メソッド PrintExecute PrintExecuteEx PrintExecutePdf PreviewExecutePdf を 実 行 した 際 に このプロパティ 値 で 設 定 された URL にアクセスします このプロパティで 設 定 されるURLは データソースを 作 成 し ランタイムを 実 行 して 印 刷 デー タをクライアントに 返 すスクリプトになります URL は HTTP HTTPS プロトコルに 対 応 しています このプロパティは 必 須 です 各 メソッド 実 行 時 に ヌル 値 や 空 文 字 列 が 設 定 されている 場 合 エラーが 発 生 します 印 刷 コントロールは このプロパティで 設 定 されるスクリプトに 対 して GET 文 字 列 (GET で 送 信 される 文 字 列 )あるいは POST 文 字 列 (POST で 送 信 される 文 字 列 )で "OuptutFileName" を 送 信 します "OutputFileName" から 常 にユニークな 文 字 列 のファイル 名 が 取 得 できるので ランタイ ム 出 力 時 にファイル 名 に 使 用 することで クライアントからのリクエストが 多 数 発 生 した 場 合 でも 上 書 きすることなく 印 刷 データのファイルを 作 成 することが 可 能 です メ ソ ッ ド PrintExecuteEx を 実 行 し た 場 合 に は さ ら に "StyleName" と "CcdFileOption" を 取 得 することができます 詳 細 はメソッド PrintExecuteEx の 欄 及 び 第 5 章 FormPrintStageWebClient ランタ イムとの 連 携 を 参 照 してください プロパティ:BSTR DeletePrintingDataScriptUrl 概 要 : メソッド PrintExecute PrintExecuteEx PrintExecutePdf PreviewExecutePdf を 実 行 した 際 に このプロパティ 値 で 設 定 された URL にアクセスします サーバ 上 に 残 った 印 刷 データを 削 除 したい 場 合 に このプロパティに 印 刷 データ(PDF ファ イル EMF ファイル CCD ファイル)を 削 除 する 記 述 をしたスクリプトの URL を 指 定 します URL は HTTP HTTPS プロトコルに 対 応 しています ヌル 値 や 空 文 字 列 が 設 定 されている 場 合 削 除 スクリプトへのアクセスは 行 いません 印 刷 コントロールは このプロパティで 設 定 されるスクリプトに 対 して GET 文 字 列 (GET で 送 信 される 文 字 列 )あるいは POST 文 字 列 (POST で 送 信 される 文 字 列 )で "DeleteFileName" を 送 信 します プロパティ CreatePrintingDataScriptUrl で 指 定 されたスクリプトに 送 信 される "OutputFileName" と 全 く 同 じ 文 字 列 を 取 得 するので 削 除 したい 印 刷 データのファイル 名 に 指 定 することが 可 能 です プロパティ:BSTR DataSendMethod 概 要 : メソッド PrintExecute PrintExecuteEx PrintExecutePdf PreviewExecutePdf を 実 行 した 際 に このプロパティ 値 で 設 定 された 方 法 で プロパティ CreatePrintingDataSc ripturl DeletePrintingDataScriptUrl に 対 して 文 字 列 を 送 信 します このプロパティで 設 定 できる 値 は "GET" と "POST" です 36
第 3 章 印 刷 コントロール 仕 様 デフォルト 値 は "POST" です またこのプロパティ 値 は 必 須 です 各 メソッド 実 行 時 に ヌル 値 は 空 文 字 列 または "GET" "POST" 以 外 の 値 が 設 定 されてい る 場 合 エラーが 発 生 します プロパティ:BSTR FormRequestArray 概 要 : メソッド PrintExecute PrintExecuteEx PrintExecutePdf PreviewExecutePdf を 実 行 した 際 に プロパティ CreatePrintingDataScriptUrl で 指 定 されたスクリプトに 対 してこのプロパティ 値 で 設 定 した 文 字 列 を 送 信 します プロパティ DeletePrintingDataScriptUrl で 指 定 するスクリプトへは 送 信 しません また このプロパティ 値 が 送 信 されるのは プロパティ DataSendMethod に "POST" が 指 定 されている 時 のみです 設 定 のフォーマットは 以 下 のようになっています "<key1>=<value1>&<key2>=<value2>&...&<keyn>=<valuen>" 例 えば 以 下 のような 文 字 列 を 指 定 した 場 合 は プロパティ CreatePrintingDataScriptUrl で 設 定 されたスクリプトでは POST 文 字 列 を 取 得 する 方 法 で "name" "product" からそ れぞれ "create" "form" を 取 得 することができます obj.formrequestarray = "name=create&product=form" プロパティ:Integer MinimizedProgressDlg 概 要 : メソッド PrintExecute PrintExecuteEx PrintExecutePdf PreviewExecutePdf 実 行 時 に 表 示 される 処 理 進 行 ダイアログの 表 示 設 定 を 指 定 します このプロパティに "1" を 指 定 すると 処 理 進 行 ダイアログは 最 小 化 で 表 示 されます 指 定 なし 及 び "0" を 指 定 すると ダイアログは 通 常 サイズの 大 きさで 表 示 されます メソッド:PrintExecute 概 要 : プロパティ CreatePrintingDataScriptUrl で 設 定 されたスクリプトにアクセスし 印 刷 データをダウンロード 後 印 刷 を 行 います このメソッドが 使 用 できる 印 刷 データは EMF ファイル です 従 って サーバのランタイムは FormPrintStage ランタイムでなければなりません メソッド:PrintExecuteEx BSTR StyleName 引 数 : StyleName 文 字 列 型 指 定 された 文 字 列 は プロパティ CreatePrintingDataScriptUrl で 設 定 されたスク リプトに 対 して GET 文 字 列 あるいは POST 文 字 列 で 送 信 される(どちらで 送 信 され るかはプロパティ DataSendMethod の 設 定 値 によります)ので スクリプト 側 では "StyleName" で 取 得 することが 可 能 です 概 要 : プロパティ CreatePrintingDataScriptUrl で 設 定 されたスクリプトを 実 行 し 印 刷 デー タをダウンロード 後 印 刷 を 行 います 37
第 3 章 印 刷 コントロール 仕 様 このメソッドが 使 用 できる 印 刷 データは CCD ファイル です 従 って サーバのランタイムは FormPrintStage Web ランタイムでなければなりません また クライアントマシンには FormPrintStage WebClient ランタイムが 導 入 されている 必 要 があります 詳 細 は 後 述 の 第 5 章 FormPrintStage WebClient ランタイムとの 連 携 を 参 照 してく ださい メソッド:PrintExecutePdf 概 要 : プロパティ CreatePrintingDataScriptUrl で 設 定 されたスクリプトを 実 行 し 印 刷 デー タをダウンロード 後 印 刷 を 行 います このメソッドが 使 用 できる 印 刷 データは PDF ファイル です 従 って サーバのランタイムは FormCast ランタイム あるいは FormCollect ランタイムで なければなりません また クライアントマシンには Adobe Acrobat(あるいは Adobe Reader)が 必 要 です メソッド:PreviewExecutePdf 概 要 : プロパティ CreatePrintingDataScriptUrl で 設 定 されたスクリプトを 実 行 し 印 刷 デー タをダウンロード 後 PDF ファイルの 表 示 を 行 います このメソッドが 使 用 できる 印 刷 データは PDF ファイル です 従 って サーバのランタイムは FormCast ランタイム あるいは FormCollect ランタイムで なければなりません また クライアントマシンには Adobe Acrobat(あるいは Adobe Reader)が 必 要 です メソッド:Init 概 要 : 印 刷 コントロールクラスの 各 プロパティを 全 て 初 期 化 します メソッド:ChangePrintInfo BSTR StyleName 引 数 : StyleName 文 字 列 型 クライアントに 保 存 されている 印 刷 情 報 の 帳 票 名 あるいは 新 規 作 成 する 帳 票 名 を 指 定 し ます 概 要 : 引 数 StyleName で 指 定 された 帳 票 名 を 持 つ 印 刷 情 報 の 設 定 変 更 あるいは 新 規 作 成 を 行 います 帳 票 名 は Style ファイル 名 となります このメソッドを 実 行 すると 印 刷 情 報 設 定 変 更 ダイアログが 起 動 します このメソッドを 実 行 するには クライアントに FormPrintStage WebClient ランタイムが 導 入 されている 必 要 があります 印 刷 情 報 設 定 変 更 ダイアログの 詳 細 は 後 述 の 第 5 章 FormPrintStage WebClient ラン タイムとの 連 携 を 参 照 してください メソッド:ResetClosedFinishing 概 要 : メソッド PrintExecute PrintExecuteEx PrintExecutePdf PreviewExecutePdf 実 38
第 3 章 印 刷 コントロール 仕 様 行 時 に 表 示 される 処 理 進 行 ダイアログの 処 理 終 了 後 このダイアログボックスを 閉 じる で 閉 じる 設 定 (オンにしている 状 態 )を 指 定 している 場 合 これを 強 制 的 に 解 除 するメソッ ドになります 処 理 が 正 常 終 了 していない 場 合 などで 処 理 結 果 を 確 認 する 際 にご 使 用 ください メソッド:SetClosedFinishing 概 要 : メソッド PrintExecute PrintExecuteEx PrintExecutePdf PreviewExecutePdf 実 行 時 に 表 示 される 処 理 進 行 ダイアログの 処 理 終 了 後 このダイアログボックスを 閉 じる で 閉 じない 設 定 (オフにしている 状 態 )を 指 定 している 場 合 これを 強 制 的 に 閉 じる 設 定 に 変 更 するメソッドになります ユーザー 側 に 処 理 進 行 ダイアログを 表 示 させない 場 合 に 指 定 します プロパティ:BSTR ResultString 概 要 : メ ソ ッ ド SyncPrintExecute SyncPrintExecuteEx SyncPrintExecutePdf SyncPreviewExecutePdf を 実 行 した 際 の 処 理 結 果 を 文 字 列 で 返 します メソッド:long retval SyncPrintExecute 戻 り 値 : retval 数 値 型 処 理 結 果 を 返 します 処 理 が 成 功 した 場 合 は "0" です "0" 以 外 は 不 正 終 了 です プロパティ ResultString で 詳 細 なエラー 情 報 を 確 認 できます 概 要 : 処 理 内 容 はメソッド PrintExecute と 同 様 ですが メソッド PrintExecute が 戻 り 値 を 返 さないのに 対 して このメソッドは 戻 り 値 を 返 します 処 理 中 はブラウザを 操 作 することができません メソッド:long retval SyncPrintExecuteEx BSTR StyleName 戻 り 値 : retval 数 値 型 処 理 結 果 を 返 します 処 理 が 成 功 した 場 合 は "0" です "0" 以 外 は 不 正 終 了 です プロパティ ResultString で 詳 細 なエラー 情 報 を 確 認 できます 引 数 : StyleName 文 字 列 型 指 定 された 文 字 列 は プロパティ CreatePrintingDataScriptUrl で 設 定 されたスク リプトに 対 して GET 文 字 列 あるいは POST 文 字 列 で 送 信 される(どちらで 送 信 され るかはプロパティ DataSendMethod の 設 定 値 によります)ので スクリプト 側 では "StyleName" で 取 得 することが 可 能 です 概 要 : 処 理 内 容 はメソッド PrintExecuteEx と 同 様 ですが メソッド PrintExecuteEx が 戻 39
第 3 章 印 刷 コントロール 仕 様 り 値 を 返 さないのに 対 して このメソッドは 戻 り 値 を 返 します 処 理 中 はブラウザを 操 作 することができません メソッド:long retval SyncPrintExecutePdf 戻 り 値 : retval 数 値 型 処 理 結 果 を 返 します 処 理 が 成 功 した 場 合 は "0" です "0" 以 外 は 不 正 終 了 です プロパティ ResultString で 詳 細 なエラー 情 報 を 確 認 できます 概 要 : 処 理 内 容 はメソッド PrintExecutePdf と 同 様 ですが メソッド PrintExecutePdf が 戻 り 値 を 返 さないのに 対 して このメソッドは 戻 り 値 を 返 します 処 理 中 はブラウザを 操 作 することができません メソッド:long retval PreviewExecutePdf 戻 り 値 : retval 数 値 型 処 理 結 果 を 返 します 処 理 が 成 功 した 場 合 は "0" です "0" 以 外 は 不 正 終 了 です プロパティ ResultString で 詳 細 なエラー 情 報 を 確 認 できます 概 要 : 処 理 内 容 はメソッド PreviewExecutePdf と 同 様 ですが メソッド PreviewExecutePdf が 戻 り 値 を 返 さないのに 対 して このメソッドは 戻 り 値 を 返 します 処 理 中 はブラウザを 操 作 することができません 40
第 3 章 印 刷 コントロール 仕 様 印 刷 コントロール 処 理 結 果 コードリスト 印 刷 コントロールのメソッド PrintExecute PrintExecuteEx PrintExecutePdf PreviewExecutePdf ( 及 び SyncPrintExecute SyncPrintExecuteEx SyncPrintExecutePdf SyncPreviewExecutePdf )の 処 理 結 果 は 各 メソッド 共 通 です 以 下 にその 一 覧 と 対 処 法 あるいは 詳 細 説 明 を 示 します 正 常 レベル 0: 処 理 は 正 常 に 終 了 しました 警 告 レベル 1100: 印 刷 データ 削 除 スクリプトにアクセスできませんでした DeletePrintingDataScriptUr l に 不 正 な 値 が 指 定 されているか スクリプトへの 要 求 に 失 敗 しています 対 処 :プロパティ DeletePrintingDataScriptUrl で 指 定 された URL が 正 しくないか サー バあるいはクライアントの 設 定 に 問 題 があります 1101: 印 刷 データ 削 除 スクリプトにアクセスできませんでした ステータスコード < 数 値 > が 返 されました 対 処 :プロパティ DeletePrintingDataScriptUrl で 指 定 されたスクリプトへのアクセス 時 に 返 されたステータスコードが < 数 値 > に 表 示 されています ステータスコードを 元 に サーバの 設 定 あるいはスクリプトにエラーがないか 確 認 してください 1101:ダウンロードした 印 刷 データの 削 除 に 失 敗 しました ディレクトリのアクセス 権 等 を 確 認 してください 1400:ダウンロードした CCD ファイルは 保 存 できません この 帳 票 資 源 データは 保 存 が 禁 止 さ れています 1401:クライアントランタイム 処 理 中 に 警 告 < クライアントランタイム 処 理 結 果 > が 返 さ れました 詳 細 情 報 はマニュアルで 確 認 してください 対 処 :クライアントランタイムが 印 刷 処 理 結 果 に 警 告 を 返 しました < クライアントランタ イム 処 理 結 果 > は 警 告 コードで 表 示 されるので そのコードを 元 に 原 因 を 調 査 することが 可 能 です 1500:Adobe Acrobat Adobe Reader のプロセス 終 了 に 失 敗 しました 対 処 :Adobe Acrobat あるいは Adobe Reader のプロセスが 残 ってしまっているので タ スクマネージャから 該 当 するプロセスを 削 除 してください エラーレベル 2100:メモリが 不 足 しています 対 処 :その 他 のアプリケーションを 終 了 するなどして メモリを 確 保 してください 2101: 通 常 使 用 するプリンタ を 取 得 することができません 通 常 使 用 するプリンタ の 設 定 を 行 ってください 対 処 :プリンタがインストールされていない 可 能 性 があります プリンタの 設 定 を 確 認 し 41
第 3 章 印 刷 コントロール 仕 様 てください 2102: 処 理 は 中 断 されました 2103: 一 時 ファイルを 保 存 するディレクトリの 取 得 に 失 敗 しました 対 処 :アカウントの 権 限 が 制 限 されている 可 能 性 があります アカウントの 権 限 等 を 確 認 してください 2104: 印 刷 データ 生 成 スクリプトにアクセスできません ステータスコード < 数 値 > が 返 されました 対 処 :プロパティ CreatePrintingDataScriptUrl で 指 定 されたスクリプトへのアクセス 時 に 返 されたステータスコードが < 数 値 > に 表 示 されています ステータスコードを 元 に サーバの 設 定 あるいはスクリプトにエラーがないか 確 認 してください 2105:Create! Form V7 の 導 入 ディレクトリを 取 得 できませんでした 正 常 にインストールさ れていない 可 能 性 があります 対 処 :Create! Form をアンインストールして 再 度 インストールしてください 2106:DLL ファイルを 参 照 できませんでした 正 常 にインストールされていない 可 能 性 があり ます 対 処 :Create! Form をアンインストールして 再 度 インストールしてください 2107: 関 数 < 関 数 名 > を 参 照 できませんでした 正 常 にインストールされていない 可 能 性 があります 対 処 :Create! Form をアンインストールして 再 度 インストールしてください 2108:プリンタハンドルの 取 得 に 失 敗 しました プリンタの 設 定 等 を 確 認 してください 2109:プリンタ 情 報 の 取 得 に 失 敗 しました プリンタの 設 定 等 を 確 認 してください 2111:クライアント 印 刷 の 初 期 化 に 失 敗 しました 説 明 :クライアントランタイムが 正 しくインストールされていない 可 能 性 があります 2112:クライアント 印 刷 の 実 行 に 失 敗 しました 説 明 :クライアントランタイムが 正 しくインストールされていない 可 能 性 があります 2113: 強 制 終 了 しました 処 理 結 果 を 確 認 して 下 さい 説 明 : 処 理 進 行 ダイアログの ボタンを 押 して 終 了 した 場 合 にこのエラーメッセージ が 表 示 されます 2114: 一 時 ファイルの 作 成 に 失 敗 しました 説 明 : 一 時 ファイルの 作 成 に 失 敗 しました テンポラリフォルダが 正 しく 設 定 されている ことを 確 認 してください 2115: 一 時 ファイルの 書 き 込 みに 失 敗 しました 説 明 : 一 時 ファイルへの 書 き 込 みに 失 敗 しました テンポラリフォルダへのアクセス 権 を 確 認 してください 42
第 3 章 印 刷 コントロール 仕 様 2116: 一 時 ファイルの 読 み 込 みに 失 敗 しました 一 時 ファイルの 読 み 込 みに 失 敗 しました テンポラリフォルダへのアクセス 権 を 確 認 して ください 2117: 一 時 ファイルの 読 み 込 みに 失 敗 しました 一 時 ファイルの 読 み 込 みに 失 敗 しました テンポラリフォルダへのアクセス 権 を 確 認 して ください 2200:URL でない 文 字 列 が 指 定 されています CreatePrintingDataScriptUrl プロパティの 設 定 値 を 確 認 してください 説 明 :CreatePrintingDataScriptUrl に URL でない 値 が 代 入 されています 2201: 不 正 なプロトコルが 指 定 されています 本 製 品 は HTTP あるいは HTTPS のみ 有 効 です 2202:サーバへの 接 続 に 失 敗 しました サーバの 環 境 を 確 認 してください 2203:サーバスクリプトへの 要 求 に 失 敗 しました 対 処 :サーバのスクリプトへ 要 求 を 発 行 することができませんでした クライアントのネッ トワーク 環 境 を 確 認 してください 2204: 印 刷 データのダウンロードに 失 敗 しました 対 処 :クライアントのネットワーク 環 境 を 確 認 してください 2205:DataSendMethod プロパティに 不 正 なメソッドが 指 定 されています 本 製 品 は POST GET のみ 有 効 です 2206:インターネットに 接 続 できません 環 境 を 確 認 してください 対 処 :クライアントのネットワーク 環 境 を 確 認 してください 2207:アクセス 設 定 情 報 の 取 得 に 失 敗 しました 対 処 :クライアントのネットワーク 環 境 を 確 認 してください 2208:サーバへのアクセス 設 定 に 失 敗 しました 対 処 :クライアントのネットワーク 環 境 を 確 認 してください 2209:HTTP レスポンスの 取 得 に 失 敗 しました サーバの 設 定 等 を 確 認 してください 2210:サーバスクリプトへの 接 続 に 失 敗 しました 対 処 :クライアントのネットワーク 環 境 を 確 認 してください 2211: 転 送 量 の 取 得 に 失 敗 しました サーバの 設 定 等 を 確 認 してください 2212: 制 限 以 上 の 長 さの URL が 指 定 されています CreatePrintingDataScriptUrl プロパティ に 設 定 できる URL の 長 さは 2048 バイトまでです 43
第 3 章 印 刷 コントロール 仕 様 2300:EMF ファイルの 取 得 に 失 敗 しました サーバで 使 用 しているランタイムを 確 認 してくだ さい 対 処 :ダウンロードしたファイルが EMF ファイルではありませんでした サーバで 出 力 し た 印 刷 データのファイルフォーマットを 確 認 してください 2301:デバイスコンテキストの 取 得 に 失 敗 しました 対 処 :アカウントの 権 限 が 制 限 されている 可 能 性 があります アカウントの 権 限 等 を 確 認 してください 2302: 印 刷 処 理 が 開 始 できませんでした プリンタの 設 定 等 を 確 認 してください 2303: 印 刷 処 理 が 実 行 できません サーバで 使 用 しているランタイムを 確 認 してください 2304: 印 刷 処 理 を 終 了 できませんでした プリンタの 設 定 等 を 確 認 してください 2305:EMF ファイルヘッダの 取 得 に 失 敗 しました サーバで 使 用 しているランタイムを 確 認 し てください 対 処 :ダウンロードしたファイルが EMF ファイルではありませんでした サーバで 出 力 し た 印 刷 データのファイルフォーマットを 確 認 してください 2306:EMF ファイルの 解 凍 に 失 敗 しました サーバで 使 用 しているランタイムを 確 認 してくだ さい 対 処 :ダウンロードしたファイルが EMF ファイルではありませんでした サーバで 出 力 し た 印 刷 データのファイルフォーマットを 確 認 してください 2307: 印 刷 処 理 の 続 行 に 失 敗 しました プリンタの 設 定 等 を 確 認 してください 2308: 印 刷 処 理 の 続 行 に 失 敗 しました プリンタの 設 定 等 を 確 認 してください 2309: 印 刷 データは EMF ファイルではありません サーバで 使 用 しているランタイムを 確 認 し てください 対 処 :ダウンロードしたファイルが EMF ファイルではありませんでした サーバで 出 力 し た 印 刷 データのファイルフォーマットを 確 認 してください 2310: 用 紙 の 向 きを 設 定 することができませんでした プリンタの 設 定 等 を 確 認 してください 2400: 印 刷 データ 生 成 スクリプトへ 送 信 する 文 字 列 の 作 成 に 失 敗 しました 不 正 なスタイル 名 が 指 定 されているか または 印 刷 情 報 が 正 常 でない 可 能 性 があります 2401:ダウンロードした CCD ファイルにアクセスできません ディレクトリのアクセス 権 等 を 確 認 してください 対 処 :アカウントの 権 限 が 制 限 されている 可 能 性 があります アカウントの 権 限 等 を 確 認 してください 44
第 3 章 印 刷 コントロール 仕 様 2402:ダウンロードした CCD ファイルを 読 み 込 むことができません ディレクトリのアクセス 権 等 を 確 認 してください 対 処 :アカウントの 権 限 が 制 限 されている 可 能 性 があります アカウントの 権 限 等 を 確 認 してください 2403:ダウンロードした CCD ファイルを 正 常 に 閉 じることができませんでした ディレクトリ のアクセス 権 等 を 確 認 してください 対 処 :アカウントの 権 限 が 制 限 されている 可 能 性 があります アカウントの 権 限 等 を 確 認 してください 2404:ダウンロードした CCD ファイルのヘッダを 読 み 込 むことができません サーバに 導 入 さ れているランタイムを 確 認 してください 対 処 :ダウンロードしたファイルが CCD ファイルではありませんでした サーバで 出 力 し た 印 刷 データのファイルフォーマットを 確 認 してください 2405:ダウンロードした CCD ファイルは 要 求 した 帳 票 のものではありません サーバ 管 理 者 に 問 い 合 わせてください 説 明 : 引 数 で 指 定 された 帳 票 名 とダウンロードした CCD ファイルの 帳 票 名 が 同 じではあり ません 2406:CCD ファイル 保 存 フォルダパスの 取 得 に 失 敗 しました 対 処 :アカウントの 権 限 が 制 限 されている 可 能 性 があります アカウントの 権 限 等 を 確 認 してください 2407:CCD ファイルの 保 存 に 失 敗 しました ディレクトリのアクセス 権 等 を 確 認 してください 対 処 :アカウントの 権 限 が 制 限 されている 可 能 性 があります アカウントの 権 限 等 を 確 認 してください 2408:CCD ファイルのタイムスタンプを 保 存 できません 対 処 :アカウントの 権 限 が 制 限 されている 可 能 性 があります アカウントの 権 限 等 を 確 認 してください 2409:ダウンロードした CCD ファイルのヘッダが 正 しくありません サーバに 導 入 されている ランタイムを 確 認 してください 対 処 :ダウンロードしたファイルが CCD ファイルではありませんでした サーバで 出 力 し た 印 刷 データのファイルフォーマットを 確 認 してください 2410: 実 行 コマンドオプションの 生 成 に 失 敗 しました 対 処 :アカウントの 権 限 が 制 限 されている 可 能 性 があります アカウントの 権 限 等 を 確 認 してください 2411:クライアントランタイム 処 理 中 にエラー 値 < クライアントランタイム 処 理 結 果 > が 返 されました 詳 細 情 報 はマニュアルで 確 認 してください 対 処 :クライアントランタイムが 印 刷 処 理 中 にエラーを 返 しました < クライアントランタ イム 処 理 結 果 > はエラーコードで 表 示 されるので そのコードを 元 に 原 因 を 調 査 すること が 可 能 です 45
第 3 章 印 刷 コントロール 仕 様 2412:クライアントランタイムから 不 明 な 処 理 結 果 が 返 されました 説 明 :クライアントランタイムが 印 刷 処 理 中 にエラーを 返 す あるいは 異 常 終 了 した 可 能 性 があります 2413:クライアントランタイムの 実 行 権 限 がありません FormPrintStage WebClient ランタ イムのライセンスを 取 得 してください 2500:Adobe Acrobat Adobe Reader の 情 報 を 取 得 できませんでした 対 処 :Adobe Acrobat あるいは Adobe Reader を 再 インストールしてください 2501:Adobe Acrobat Adobe Reader の 情 報 を 取 得 できませんでした 対 処 :Adobe Acrobat あるいは Adobe Reader を 再 インストールしてください 2502:Adobe Acrobat Adobe Reader の 起 動 に 失 敗 しました 説 明 :Adobe Acrobat あるいは Adobe Reader を 動 作 するプロセスを 起 動 することができ ませんでした 2503: 印 刷 ジョブの 監 視 に 失 敗 しました プリンタの 設 定 等 を 確 認 してください 2504: 印 刷 ジョブ 情 報 の 取 得 に 失 敗 しました プリンタの 設 定 等 を 確 認 してください 2505: 印 刷 ジョブへの 送 信 に 失 敗 しました プリンタの 設 定 等 を 確 認 してください 2506: 現 在 導 入 されている Adobe Acrobat Adobe Reader のバージョンでは 本 製 品 は 使 用 でき ません 46
第 3 章 印 刷 コントロール 仕 様 データ 送 信 における 制 限 事 項 プロパティ FormRequestArray や GET 文 字 列 を 使 用 して プロパティ CreatePrintingDataS cripturl で 指 定 したスクリプトに 対 して データ 送 信 を 行 うことが 可 能 ですが 使 用 するメソッ ドによって 予 約 されたキー 名 があります このキー 名 を 設 定 してしまうと 印 刷 コントロールが 正 常 終 了 できなくなってしまう 可 能 性 が あります 以 下 を 参 考 にしてください 使 用 するメソッド PrintExecute (SyncPrintExecute) 予 約 されたキー 名 "OutputFileName" PrintExecutePdf (SyncPrintExecutePdf) "OutputFileName" PreviewExecutePdf (SyncPreviewExecutePdf) "OutputFileName" PrintExecuteEx (SyncPrintExecuteEx) "OutputFileName" "StyleName" "CcdFileOption" 47
第 4 章 印 刷 コントロールの 応 用 第 4 章 印 刷 コントロールの 応 用 この 章 では 印 刷 コントロールをより 便 利 に 使 用 できる 方 法 を 説 明 します 48
第 4 章 印 刷 コントロールの 応 用 印 刷 データの 削 除 方 法 システムの 運 用 ポリシーによっては サーバで 作 成 された 印 刷 データが 不 要 である 場 合 があり ます ここでは サーバ 側 に 残 った 印 刷 データを 削 除 する 方 法 を 説 明 します 1.バイナリを 扱 えないスクリプト(ASP 等 )を 使 用 している 場 合 CreatePrintingDataScriptUrl で 指 定 された 印 刷 データ 作 成 スクリプトは HTTP レスポンスに 印 刷 データを 書 き 込 まなければなりません 従 って ASP のようなバイナリを 使 用 できないスクリプトでは 印 刷 データを Web で 参 照 でき るディレクトリに 作 成 して URL リダイレクトを 使 用 して HTTP レスポンスに 印 刷 データをセッ トする 必 要 があります 後 述 の 2.バイナリを 扱 えるスクリプト(Perl 等 )を 使 用 している 場 合 のように 印 刷 デー タ 作 成 スクリプトで 印 刷 データを 削 除 することはできません このような 場 合 は 印 刷 コントロールのプロパティ DeletePrintingDataScriptUrl に 印 刷 デー タを 削 除 する 処 理 を 行 うスクリプトを 設 定 しなければなりません 印 刷 コントロールは CreatePrintingDataScriptUrl で 指 定 されたスクリプトにアクセスした 後 DeletePrintingDataScriptUrl で 指 定 されたスクリプトにアクセスします 印 刷 データ 削 除 スクリプトの 例 は 以 下 の 通 りです 例 <%@ Language=VBScript%> <% Set obj = Server.CreateObject("Scripting.FileSystemObject") obj.deletefile(server.mappath("printings/" + Request.Form("DeleteFileName"))) Set obj = Nothing %> 2.バイナリを 扱 えるスクリプト(Perl 等 )を 使 用 している 場 合 バイナリを 扱 える Perl 等 のスクリプトで 印 刷 データを 作 成 している 場 合 その 印 刷 データを 削 除 する 方 法 は 簡 単 です CreatePrintingDataScriptUrl で 指 定 された 印 刷 データ 作 成 スクリプトは HTTP レスポンスに 印 刷 データを 書 き 込 まなければなりません ASP のようなバイナリを 使 用 できないスクリプトでは URL リダイレクト 等 を 使 用 して HTTP レ スポンスに 印 刷 データをセットしなければなりませんが Perl のようなスクリプトはバイナ リデータを HTTP レスポンスに 書 き 込 めるため 印 刷 データを HTTP レスポンスに 書 き 込 んだ 後 その 印 刷 データを 削 除 することができます 以 下 に 例 を 示 します 49
第 4 章 印 刷 コントロールの 応 用 例 #!C:/usr/Perl/bin/perl.exe : : # ランタイム 実 行 など : : # 印 刷 データファイルオープン open(file, "$OutputFilePath"); binmode FILE; print "Content-type: application/x-compress\n\n"; print while (<FILE>); close(file); # 印 刷 データを 削 除 unlink("$outputfilepath"); また リダイレクトを 使 用 する 必 要 がないため 印 刷 データファイルはサーバのローカルであ ればどこにでも 作 成 できる という 利 点 もあります 50