- - PR -
WebBrowserプレビュー画面の設定
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-02-13 13:48
C#のアプリからHTMLファイルを読み込み、画面に表示させずにプレビュー画面を開こうと思い、以下のようなソースを作成しました。
private void button2_Click(object sender, EventArgs e) { WebBrowser webBrowserForPrinting = new WebBrowser(); webBrowserForPrinting.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(PrintDocument); webBrowserForPrinting.Url = new Uri(@"C:\\Users\\test\\Desktop\\test.html"); } private void PrintDocument(object sender, WebBrowserDocumentCompletedEventArgs e) { ((WebBrowser)sender).ShowPrintPreviewDialog(); } 上記でプレビュー画面が表示されはしたのですが、 ・印刷向きをデフォルトで横方向 ・倍率をデフォルトで100% ・プレビュー画面をWINDOWセンターに表示 ・プレビュー画面のサイズ などの設定をどのように行えばいいのかわかりません。 もしご存知の方おりましたら、教えてください。 − 環境 − Windows Vista VS2005 C# | ||||
|
投稿日時: 2008-02-13 15:41
いろいろ調査しているのですが、
private void button3_Click(object sender, EventArgs e) { System.Drawing.Printing.PrintDocument pd = new System.Drawing.Printing.PrintDocument(); pd.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(pd_PrintPage); pd.DefaultPageSettings.Landscape = true; // 横向き pd.DefaultPageSettings.PaperSize = new PaperSize("A4",827, 1169);// 用紙サイズ PrintPreviewDialog ppd = new PrintPreviewDialog(); ppd.Document = pd; ppd.SetBounds(0, 0, 1024, 768); // プレビュー画面サイズ ppd.Document.DocumentName = "サンプル"; //印刷プレビューダイアログを表示する ppd.ShowDialog(); } private void pd_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { // ここでHTMLを読み込ませる? } のようにし、何とかしてHTMLをブラウザで表示した状態のものを印刷できないかを調べています。 しかし、今まで印刷などはやったことがないので苦戦してます。。。 アドバイス頂けたらうれしいです。 | ||||
|
投稿日時: 2008-02-13 19:49
WebBrowserのDrawToBitmapて、使用できないんですね。
印刷対象がWebBrowserコントロール内に全て表示されていることを前提にするなら、 1、WebBrowserにHTML描画 2、表示しているWebBrowserをCopyFromScreenでクリップボードにコピー 3、イメージをPrintPageEventArgsに描画 で、OKかと思います。 半年振りのC#なんで汚いサンプルですが・・・ (USING使ってないやらイメージの扱いがヘンとかは目を瞑って下さい。)
| ||||
|
投稿日時: 2008-02-13 20:40
未記入さん、回答ありがとうございます。
教えていただいた方法だと、複数ページある場合は、1ページ毎に手順1〜4を繰り返す事になるのでしょうか? 1.HTML作成 2.WebBrowserに1で作成したHTML作成 3.WebBrowserの内容をCopyFromScreenでコピー 4.コピーしたイメージをメンバ変数に格納 ちなみに、WebBrowserは非表示にしているのですがCopyFromScreenでコピーできるのでしょうか? あと、HTML内で印刷時に改行を指示するタグを入れているのですが、画像キャプチャでは改行指示は無効ですよね? すぐに教えていただいた方法で確認できませんが、時間が空き次第確認してみたいと思います。 ありがとうございました。 |
1