- PR -

activePDFのPDFPrintを自作する?

1
投稿者投稿内容
よぴ
会議室デビュー日: 2003/12/22
投稿数: 9
投稿日時: 2006-08-23 13:39
いつもお世話になっています。

エクセルソフトが提供しているactivePDFのPDFPrintもどきを自前で
作成できないかと悩んでいるところです。

全体の動きとしましては、
Webページを表示し、ローカルのプリンタで印刷、その後Webページを移動
となります。

現在までの進捗を書きたいと思います。

@TestPrintClsというプロジェクトを作成する。

AUserControl(windowsフォーム)をPrintControlという名前で作成する。
 このUserControlでは、印刷したいPDFURLを設定するプロパティと
 印刷実行をするメソッド(PrintAll)をPublicで作成する。

BUserControlの画面デザインにAxAcroPDFLib.AxAcroPDF(acroPDF)のオブジェクトを配置 する。
 これは、C:\\\\\\\\Program Files\\\\\\\\Adobe\\\\\\\\Acrobat 7.0\\\\\\\\ActiveXにあるAcroPDF.dllを
 使用する。

C印刷実行をするメソッド(PrintAll)に印刷命令を記述する。
 acroPDF.src = "http://****.pdf"(プロパティより取得したPDFURLを設定)
acroPDF.PrintAll

Dプロジェクトのプロパティの構成プロパティ→ビルドにて
 COMの相互運用機能に登録するにチェックをつけ、出力パスに
 Webページが格納されているフォルダを指定し、ビルドする。

EWebページのHTMLのBODYタグに下記を記述する。
 <BODY onload="PdfPrint()">
   <OBJECT id="oPDF" style="WIDTH: 184px; HEIGHT: 128px" classid="http:TestPrintCls.dll#TestPrintCls.PrintControl" VIEWASTEXT>
</OBJECT>
 </BODY>
 また、HEADタグに下記を記述する。
 <SCRIPT language="VBScript">
 <!--
   Sub PdfPrint()
oPDF.src = "http://****.pdf"(印刷対象のPDFURL)
oPDF.PrintAll()
   End Sub
 -->
 </SCRIPT>

FIEの設定よりWebページを信頼されているサイトに登録

G管理ツールのMicrosoft .NET Framework 1.1 構成より
 マイコンピュータ→ランタイム セキュリティ ポリシー→
 コンピュータ→コードグループ→All_Code→Trusted_Zone
 を編集し、アクセス許可セットをFullTrustにする

HWebページを表示する

F、G、Hはローカル側です。
以上でサーバにおかれているWebページを表示すると
ローカルのプリンタで該当のPDFを印刷することができました。

環境は
WindowsXP
VB.NET(2003)
Microsoft .NET Framework 1.1
ASP.NET
です。

ここからが、悩んでいるところなんですが、
PDFを印刷後、WebページのURLを違うURLに変え遷移させたいのですが
やりかたがわからない状態です。

似たようなプログラムを作成したことは皆さんあるでしょうか?
長々と文章を記述して申し訳ございません。
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2006-08-24 12:20
ActiveXコントロールなら、イベントでやるのが一般的でしょう。
マネージコントロールでも出来るのか?
サンプルを探してみました。
http://blogs.msdn.com/andrewdownum/archive/2006/01/26/ControlInBrowserEvents.aspx

あるいは、マネージコントロール側に印刷状態プロパティを設けて、クライアントスクリプト側のタイマーでそのプロパティを監視するとか。
よぴ
会議室デビュー日: 2003/12/22
投稿数: 9
投稿日時: 2006-08-24 13:08
todoさん返信ありがとうございます。

クライアント側でもタイマーを設置して
状態を監視することができるのですね。

さっそく作りこんでみます。
1

スキルアップ/キャリアアップ(JOB@IT)