- 締切済み
文字回転
プリンターに印刷時に文字を回転する方法を教えてください。 ピクチャーボックスにAPIを使って新しいフォントスタイルを作り回転する事はできるのですが。 その方法ではプリンターでは回転せず水平に印刷されます。 どうか教えてください。 Printer.Print MOJI
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- i-touch
- ベストアンサー率40% (170/415)
こんにちは 私も同じことをしようとしていましたが、同様の環境で同じ現象でした。 そのころ調べたところでは、それが仕様(バグ?)じゃなかったかと思います。昔のことなので記憶が曖昧ですが。 今はサードパーティーのコントロールで実現させています。他にもいろいろと便利だったので。 VS-VIEWという製品です。関係者ではありません。 では!
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 プリンタにもちゃんと印刷されるはずですが。 APIはCreateFont関数ですよね。 で、私の場合は、 Prthdc = Printer.hdc 'フォントの作成 hFont = CreateFont(省略) hFontOld = SelectObject(Prthdc, hFont) '文字の出力 Result1 = TextOut(Prthdc, 中間省略, LenB(StrConv(文字列, vbFromUnicode))) 'フォントオブジェクトの削除 Result2 = SelectObject(Prthdc, hFontOld) Result3 = DeleteObject(hFont) Printer.EndDoc という感じですが。 どういうコードになっていますか? 補足お願いします。 ちなみに、私の環境はWindows2000のVB6.0SP5です。 環境は書きましょう。 では。
補足
返事が大変遅れましたすみません。 開発環境はMicrosoft Visual Studio 6.0 Enterpriseです SYUにプリンターオブジェクトを設定しています。 Public Sub MOJIK(MX, MY, FO, COR, MO, intAngle) Dim lnghNewFont As Long Dim lnghOriginalFont As Long Dim lngHeight As Long Dim lngWidth As Long 'on error goto Exit Sub ' フォントを作成 With SYU ' ピクセル単位に設定 ' フォントの高さ lngHeight = FO ' フォントの幅 lngWidth = 0 With .Font lnghNewFont = CreateFont(lngHeight, lngWidth, _ intAngle * 10, intAngle * 10, _ .Weight, _ .Italic, _ .Underline, _ .Strikethrough, _ .Charset, _ 0, _ 0, _ 0, _ 0, _ .Name) End With ' 作成したフォントを選択 lnghOriginalFont = SelectObject(.hdc, lnghNewFont) ' 描画開始位置 SYU.CurrentX = MX SYU.CurrentY = MY - SYU.TextHeight("A") ' テキストボックスの内容を描画 SYU.Print MO ' 元のフォントに戻す lnghNewFont = SelectObject(.hdc, lnghOriginalFont) End With ' オブジェクトを破棄 DeleteObject lnghNewFont End Sub