質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.22%

フォームアプリケーションにて、文字部分のみ背景を塗りつぶして印刷する方法

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 951

ygoooo

score 65

フォームで入力した文を、文字部分は白、背景を黒にして印刷できるようにしたいのですがうまくいきません。

理想
イメージ説明
↓(プレビュー)(EXCELですみません)
イメージ説明

一応調べながら試行錯誤しましたが全く理想通りになりません。

//プレビュー
 private void button1_Click(object sender, EventArgs e)
 {
  System.Drawing.Printing.PrintDocument pd =new System.Drawing.Printing.PrintDocument();
  pd.PrintPage +=new System.Drawing.Printing.PrintPageEventHandler(printDocument1_PrintPage);
  PrintPreviewDialog ppd = new PrintPreviewDialog();
  ppd.Document = pd;
  ppd.ShowDialog();
 }

//印刷
 private void button2_Click(object sender, EventArgs e)
 {
  PrintDocument pd = new PrintDocument();
  pd.PrintPage += new PrintPageEventHandler(printDocument1_PrintPage);
  pd.Print();
 }

//printDocument
 private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
 {
  string print1 = textBox1.Text;
  string print2 = textBox2.Text;
  string a = print1 + '\n' + print2;
  int num = print1.Length;
  Font fnt = new Font("メイリオ", 20);
  StringFormat sf = new StringFormat();
  CharacterRange[] characterRanges ={new CharacterRange(0, num)};
  sf.SetMeasurableCharacterRanges(characterRanges);
  RectangleF layoutRect = new RectangleF(0, 0, 500, 100);
  StringFormat drawFormat = new StringFormat();
  drawFormat.Alignment = StringAlignment.Center;
  e.Graphics.DrawString(a, fnt,Brushes.White,layoutRect, drawFormat);          
 }

アドバイスお願いいたします。


追記
すみません、言葉足らずだったかもしれません。
プレビューであげた画像はあの通り印刷したい!という希望です。
同じページに、一行まるまるでなく文字数分のみ背景が黒い文と、なにもいじっていない文、両方印刷したいのです。
まだ言葉足らずでしたら追記しますので、よろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

+2

イメージ説明

これではだめですか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/07/24 17:10

    これはテキストボックスの背景を黒くしているんですかね?
    フォーム上で入力したものを、一部のみ背景を黒くして印刷したいのです・・・
    入力上(画面上)はいたって普通のフォームで構わないんですが・・・

    キャンセル

  • 2017/07/24 17:13

    印刷のときだけ黒くしたいということですか?

    キャンセル

  • 2017/07/24 17:15

    はい、紙にのったときに文字の背景を黒くして印刷をしたいんです。

    キャンセル

check解決した方法

0

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.22%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる