- - PR -
ページ印刷時の、最下部を決め打ちしたい
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-04-21 17:20
お世話になります。
Htmlの<table>で、帳票を作成しました。ブラウザより印刷して使います。 この帳票には任意の文字数の”文章”を出力(表示)するセルが真ん中にあり、その文章の長さによっては、印刷物が2ページ目、3ページ目と増えて(伸びて)ゆきます。 (文章の長さはまちまちなので、heightで固定できません) しかしながら、どうしても用紙のフッターに、「承認印」を捺印する枠線(Tableタグ)を置きたいのですが、途中の文章セルの長さ次第で、最下部ではなく、2ページの上に来てしまったり、 3ページ目の真ん中に来てしまったり、バラバラです。 用紙のフッター・最下部に、決め打ちでHtmlを設置する事はできませんでしょうか? 分かり難い文章ですみませんが、何かご存知の方いらっしゃいましたら、お願い致します。 | ||||
|
投稿日時: 2008-04-21 17:30
先にフッターだけ印刷した紙に、テーブルを出力しては。
| ||||
|
投稿日時: 2008-04-21 17:32
高さが決められないとなると計算さえできないので、印刷のみコンポーネントを使うという手段が賢明かと思われます。(表示は PDF などにする)
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2008-04-21 20:00
mio様
新しい発想ありがとうございます。柔軟な考え、勉強になりました。 今回は、対象帳票専用に用意されたプリンタではないため、ちょっと厳しそうです。。 じゃんぬねっと様 以前、.net付属のクリスタルレポートで作成していたのですが、PrintJobLimitがすぐに来てしまい(値増やしても追いつかず)、断念しておりました。ちょっと研究してみようと思います。ありがとうございました。 | ||||
|
投稿日時: 2008-04-22 09:42
その原因の多くはただの Dispose 漏れが大半です。 そこそこの規模の Web アプリケーションでも 75 程度あれば十分です。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2008-04-22 19:26
じゃんぬねっと様>
自分でも、Disposeが原因だとは思っているのですが、Disposeすると、「レポートファイルパスが無効です。」となってしまいます・・・。 どんどん話題がずれて恐縮ですが、現在は、IEの印刷時のフッターを、CSSで強制的にコントロールしたく(ページ番号を入れたい)苦戦しております。。 ※さすがじゃんぬねっとさんは、知識が広いですね。 いつも読ませて頂いております。 | ||||
|
投稿日時: 2008-04-23 10:17
ではこちらを解決すれば済む話ということですね。 であるなら、まずこのレポートが外部レポートか内部レポートかを教えて頂けないでしょうか? CrystalReports でありがちな間違いが Load メソッドにパスを指定していないパターンです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2008-04-23 11:13
じゃんぬねっと様>
お相手をして頂き、大変恐縮です。 aspxページの中にレポートを設置しているので、内部レポートという事になりますでしょうか・・・。 aspxページの中に、CrystalReportViewerを置いて使っております。 図々しくてすみませんが、下記のようなコードになっている事を書かせて頂きます。 Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.SelectedIndexChanged '印刷したいレポートをグリッドビューから選択する binder() End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 'プレビューをPDFにしたり、印刷にする際、そのつど動く。 binder() End Sub Public Function binder() Try Dim crReport As Object = New CrystalDecisions.CrystalReports.Engine.ReportDocument() crReport.Load(Request.MapPath("hoge.rpt")) '(ここで、レポートのパラメータフィールドに対して、印刷対象を選択させる値の引渡しを行う) Me.CrystalReportViewer1.ReportSource = crReport '●ここでレポートオブジェクトを.dispose()するとエラーです。本当はここでdisposeをさせたいです。 Catch Response.Write(Err.Description().ToString) Finally End Try End Function お返事いただけると幸いです。 よろしくおねがい致します。 |