@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

反転印刷について

投稿者投稿内容
ケイ
大ベテラン
会議室デビュー日: 2004/04/20
投稿数: 100
投稿日時: 2006-12-11 11:49
文字の反転印刷方法が分からないので、教えていただけますでしょうか?

VB+SQLserver2005で開発を行っています。

帳票類の印刷は、Crystal Report9.2を使用していたのですが、
今回、文字を180度回転して印刷したいのです。(文字がまるっきり逆になるように)
しかし、テキストの回転では、0、90、270しかありませんでした。

Crystal Reportdeでは反転印刷はできないのでしょうか?

また、他の方法で可能という場合でもいいので、
ご存知の方は方法を教えていただけますでしょうか?

※今の所、vb から Printerで、直接印刷で反転印刷が可能かどうかを
探してはいるのですが、見つかりません。

よろしくお願いします。
rvmx
大ベテラン
会議室デビュー日: 2002/09/26
投稿数: 184
お住まい・勤務地: 愛媛県
投稿日時: 2006-12-11 12:05
今日は

Imageにし、RotateFlip(RotateFlipType.Rotate180FlipX)
で反転させて印刷させる方法はあります。
ケイ
大ベテラン
会議室デビュー日: 2004/04/20
投稿数: 100
投稿日時: 2006-12-11 13:41
引用:

rvmxさんの書き込み (2006-12-11 12:05) より:
今日は

Imageにし、RotateFlip(RotateFlipType.Rotate180FlipX)
で反転させて印刷させる方法はあります。



返信ありがとうございます。

これは、vbのImageコントロールを使用するという事でしょうか?
とすると、出力したい内容をビットマップ等で作成してimageのPictureとして設定し、
反転して印刷すればよいとの事でしょうか?

もし上記の方法であるならば、出力内容が可変の為、ビットマップに変換するのは、
難しいと思います。(Vb内で変換しなければいけなくなりますし・・・・)

上記以外の方法をご存知ではないでしょうか?



じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-12-11 13:56
引用:

ケイさんの書き込み (2006-12-11 13:41) より:

これは、vbのImageコントロールを使用するという事でしょうか?


コントロールではないでしょう。
System.Drawing.Image クラス、およびその派生クラスです。

引用:

とすると、出力したい内容をビットマップ等で作成してimageのPictureとして設定し、反転して印刷すればよいとの事でしょうか?


"image の Picture として" というのが、良くわからなかったのですが、
CrystalReports の Picture オブジェクトを使うという認識で合っていますか?

引用:

もし上記の方法であるならば、出力内容が可変の為、ビットマップに変換するのは、難しいと思います。(Vb内で変換しなければいけなくなりますし・・・・)


回転しなければいけないのは、帳票内の一部の文字列だけでしょうか?
それとも、帳票全体でしょうか?

引用:

上記以外の方法をご存知ではないでしょうか?


回転した逆さまフォントを使用する。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ケイ
大ベテラン
会議室デビュー日: 2004/04/20
投稿数: 100
投稿日時: 2006-12-11 15:23
返信ありがとうございます。

申し訳ありません。VBのバージョンを書き込み忘れていました。
VB6.0で開発しています。

引用:

じゃんぬねっとさんの書き込み (2006-12-11 13:56) より:
"image の Picture として" というのが、良くわからなかったのですが、
CrystalReports の Picture オブジェクトを使うという認識で合っていますか?




imageを使うという事だったので、imageコントロールを使用するのかと思ったので、
Image.Picture = LoadPicture("c:\\tes.bmp")で画像の表示をするかと思いました。


引用:

回転しなければいけないのは、帳票内の一部の文字列だけでしょうか?
それとも、帳票全体でしょうか?



紙を半分で折って使用するらしくA4帳票の半分上が、逆さまで印字されて半分下が普通に印字されるようにしたいです。

また内容については、お客の個人情報になる為、可変です。

引用:

回転した逆さまフォントを使用する。



申し訳ありません。回転した逆さまフォントというのが分からないのですが、
これは、例えばフォントのMS明朝で、かつ逆さまになって表示されるフォントが
あるという事でしょうか?ゴシックで表示したければゴシックの逆さまのフォントが
あるとかでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-12-11 15:42
引用:

ケイさんの書き込み (2006-12-11 15:23) より:

imageを使うという事だったので、imageコントロールを使用するのかと思ったので、
Image.Picture = LoadPicture("c:\\tes.bmp")で画像の表示をするかと思いました。


逆に質問なのですが、Image コントロールでどうやって回転させ、
どうやって、CrystalReports に渡そうと考えていました?

引用:

紙を半分で折って使用するらしくA4帳票の半分上が、逆さまで印字されて半分下が普通に印字されるようにしたいです。


そうなると、難しいですね。
表も裏もひとつの帳票で印刷したいのですよね? (両面印刷ではなく)

引用:

申し訳ありません。回転した逆さまフォントというのが分からないのですが、これは、例えばフォントのMS明朝で、かつ逆さまになって表示されるフォントがあるという事でしょうか?ゴシックで表示したければゴシックの逆さまのフォントがあるとかでしょうか?


そういうフォントを、作るか / 発見して入手するかすれば、解決できると考えての発言です。
引用元は、"上記以外の方法をご存知ではないでしょうか?" ですから。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ケイ
大ベテラン
会議室デビュー日: 2004/04/20
投稿数: 100
投稿日時: 2006-12-11 16:55
引用:

じゃんぬねっとさんの書き込み (2006-12-11 15:42) より:
逆に質問なのですが、Image コントロールでどうやって回転させ、
どうやって、CrystalReports に渡そうと考えていました?



CrystalReportsに渡そうと思っていたわけではなく、

http://hanatyan.sakura.ne.jp/vbhlp/mfgprint.htm
上記の参照先のようなPictureに表示してPictureを印刷するように、
imageでも似たような事ができて、その際に画像を反転しておけば
反転して印刷できるのかと考えていました。
※反転については反転できる事を試したわけではなく、RotateFlip(RotateFlipType.Rotate180FlipX) を
使用すればいいのかな?くらいにしか考えていませんでした。すみません。


誤解のある書き方で申し訳ありませんでした。

引用:

表も裏もひとつの帳票で印刷したいのですよね? (両面印刷ではなく)


そうですね。両面印刷というわけではありません。

引用:

そういうフォントを、作るか / 発見して入手するかすれば、解決できると考えての発言です。
引用元は、"上記以外の方法をご存知ではないでしょうか?" ですから。


そうでしたか。ありがとうございました。



[ メッセージ編集済み 編集者: ケイ 編集日時 2006-12-11 16:59 ]

[ メッセージ編集済み 編集者: ケイ 編集日時 2006-12-11 17:02 ]
PAO
ベテラン
会議室デビュー日: 2004/10/21
投稿数: 66
投稿日時: 2006-12-11 17:22
直接印刷で反転印刷でよければ、こんな感じです。

あとは、調べてね。^^

using System.Drawing.Drawing2D;

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
Matrix mx = new Matrix(-1,0,0,1,500,100);
e.Graphics.MultiplyTransform(mx);
mx.Reset();
e.Graphics.DrawString("あいうえお", new Font("MS 明朝", 32), Brushes.Black, new RectangleF(10,10,500,50), new StringFormat());
}

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