- PR -

ASP.NETでの印刷について

投稿者投稿内容
ジェミニ
常連さん
会議室デビュー日: 2003/08/26
投稿数: 33
投稿日時: 2003-11-13 09:43
いつも参考にさせて頂いております。

今、一つ悩みがありみなさんのお力をお借りできればと思い書込みさせて頂きました。
悩みというのは、現在ASP.NETで開発を行っておりあるページでIEに表示された
内容をIEの印刷機能を使いクライアント側で印刷しています。
この時上下左右の余白の部分が各マシーン毎にまちまちな為全ての内容を印刷出来ない
クライアントが発生します。
この印刷(プリンター)に関する制御を印刷を行う画面で自動的に行えないものなのでしょうか?自動でなくても、印刷時に設定画面を表示する様な出来ない物なのでしょうか?
例えば、VB.NETでの印刷制御の様な物はないのでしょうか?
ちなみに、プログラムはあくまで会社内のローカルなネットワークを使っていて
外部からつなぐ事はありません。
また、各クライアントにはプリンターが必ず設定されている物としています。
JavaScript、VBScript辺りで出来るのかな?という様な気はしているのですが・・・
よろしくお願いいたします。
まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2003-11-13 11:01
こんにちは。

引用:

ジェミニさんの書き込み (2003-11-13 09:43) より:

悩みというのは、現在ASP.NETで開発を行っておりあるページでIEに表示された
内容をIEの印刷機能を使いクライアント側で印刷しています。
この時上下左右の余白の部分が各マシーン毎にまちまちな為全ての内容を印刷出来ない
クライアントが発生します。
この印刷(プリンター)に関する制御を印刷を行う画面で自動的に行えないものなのでしょうか?自動でなくても、印刷時に設定画面を表示する様な出来ない物なのでしょうか?
例えば、VB.NETでの印刷制御の様な物はないのでしょうか?
ちなみに、プログラムはあくまで会社内のローカルなネットワークを使っていて
外部からつなぐ事はありません。
また、各クライアントにはプリンターが必ず設定されている物としています。


えーと、問題となっているのは余白ですから
これを固定もしくはユーザが調節して印刷したいということですかね?

ユーザに余白を調節してもらえるよう印刷設定画面を出す場合であれば
JavaScriptに「print()」というのががあります。
#IE5以上、NN4以上であれば使えます。それ以下には対応してません。

また、当方ではScriptXというものを使用して余白を固定し印刷していました。
「印刷ボタン押下→印刷ボタンを隠す→余白、用紙、縦横設定(固定、ScriptX)→印刷→印刷ボタン表示」
とまぁ、こんな風に。ただし、ScriptXはライセンスが必要らしいです。
やはりキトンとした印刷をしたいのであればツール頼りとなってしまうのでしょうか?
(上の広告にあるグレープシティとか・笑)

ところで、ユーザ毎に余白が異なるのはユーザが勝手に余白を変更していると考えられませんか?
また、プリンタの機種によってデフォルトの余白が異なり切れてしまうこともあります。

ひとまず参考まで。

引用:

JavaScript、VBScript辺りで出来るのかな?という様な気はしているのですが・・・


出来そうかな?という気がするのであればすぐに調べましょう。
それでも解決できなかったらここで聞いてみる、と。
#聞いて解決したことよりも自分で調べて解決した方がよく覚えられます(私は)。

[ メッセージ編集済み 編集者: まゆりん 編集日時 2003-11-13 11:04 ]
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-11-13 11:23
 余白というより、「印刷可能範囲」が、プリンタとドライバによって異なります。


 余談ですが、MS-Office製品はドキュメントが開かれた環境で「印刷可能範囲」を取得し、ドキュメント1ページに印字できる文字数を計算します。したがって、ある環境でキチキチに設定していると、他の環境ではページが狂います。MSの技術情報を検索すると、ドキュメントがあり、明記されています。(すみません、URLを記載したいのですが、一度見かけて、その後探しているのですが見つかりません。見つけた方は教えてください)
ジェミニ
常連さん
会議室デビュー日: 2003/08/26
投稿数: 33
投稿日時: 2003-11-13 11:40
まゆりんさん、Jittaさんありがとうございます。
まゆりんさんのおっしゃる通り自分で調べないと身につきませんよね。
すみません。

私がしたかったのは、印刷実行時にマージンのサイズ変更と用紙の縦、横の設定
だったのです。
以前VB.NETで開発していた時はPrintDialogを使っていたのでASP.NETにも
もしかしたらそういう物があるのかな?とあわい期待を抱いていたのですが
どうもなさそうだったので、こちらに書込みさせて頂きました。
JavaScriptもほとんど使った事がなかったのでいまいちよくわからず・・・

とりあえず Print() でプリンタの設定は出る様になったのでもう少し調べて
ページ設定を出せる様にがんばってみます。

ありがとうございました。
まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2003-11-13 12:16
こんにちは。

引用:

Jittaさんの書き込み (2003-11-13 11:23) より:
 余談ですが、MS-Office製品はドキュメントが開かれた環境で「印刷可能範囲」を取得し、ドキュメント1ページに印字できる文字数を計算します。したがって、ある環境でキチキチに設定していると、他の環境ではページが狂います。



なるほど、そういうことだったんですか。
何度かこういう問題にぶつかっておきながら程細かく調べていなかったので勉強になりました。
(何においてもそうですが、統一して欲しいですね。)

で、今そのURLを探しているんですが・・・それらしきものが見つかりませんねぇ。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-11-13 16:42
引用:

Jittaの書き込み (2003-11-13 11:23) より:

ある環境でキチキチに設定していると、他の環境ではページが狂います。MSの技術情報を検索すると、ドキュメントがあり、明記されています。


とりあえず、これが近いので
QA [Excel 2002] 別のコンピュータでファイルを開くと画面表示や印刷結果が異なる場合の注意事項
ジェミニ
常連さん
会議室デビュー日: 2003/08/26
投稿数: 33
投稿日時: 2003-11-13 17:01
Jittaさん、ありがとうございます。

現在、ScriptXをダウンロードしソースに追加し色々ためしております。
なかなかうまくいかず、頭をかかえていますが・・・

<HEAD>の部分に下記の部分を追加したのですが"Object"の部分にエラーをしめす
赤い波線が入り悩んでおります。

<HTML>
<HEAD>
<title>Sample</title>
<meta content="Microsoft Visual Studio .NET 7.0" name="GENERATOR">
<meta content="Visual Basic 7.0" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">

---- この部分を追加 --------

<object id="factory" viewastext style="display:none"
classid="clsid:5445be81-b796-11d2-b931-002018654e2e" codebase="http://ScriptX/ScriptX.cab#Version=6,1,431,2">
</object>

---- この部分を追加 --------

</HEAD>
まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2003-11-13 17:35
こんにちは。
引用:

ジェミニさんの書き込み (2003-11-13 17:01) より:

<object id="factory" viewastext style="display:none"
classid="clsid:5445be81-b796-11d2-b931-002018654e2e" codebase="http://ScriptX/ScriptX.cab#Version=6,1,431,2">
</object>



私の時も同じ現象がありましたが、コンパイルや実処理に影響はなかったので無視しています。
何故なのかは調べていませんが・・・。

ちなみにVS.NETを使っている場合、objectタグ内に勝手に何か書き込まれることがあり、
そのまま実行するとその画面を表示する前にダイアログが表示されていました。
うーん、謎です。時間があるときに調べてみよーっと。

とりあえず参考まで。

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