dポイントプレゼントキャンペーン実施中!

プリンターに印刷時に文字を回転する方法を教えてください。
ピクチャーボックスにAPIを使って新しいフォントスタイルを作り回転する事はできるのですが。
その方法ではプリンターでは回転せず水平に印刷されます。
どうか教えてください。
Printer.Print MOJI

A 回答 (2件)

こんにちは


私も同じことをしようとしていましたが、同様の環境で同じ現象でした。
そのころ調べたところでは、それが仕様(バグ?)じゃなかったかと思います。昔のことなので記憶が曖昧ですが。
今はサードパーティーのコントロールで実現させています。他にもいろいろと便利だったので。
VS-VIEWという製品です。関係者ではありません。
では!

参考URL:http://www.grapecity.com/japan/support/database/ …
    • good
    • 0

こんにちは。

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

補足日時:2002/07/08 00:25
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!