- PR -

VB.NETでデバイスフォント(プリンタフォント)の印刷

1
投稿者投稿内容
るちあーの
会議室デビュー日: 2006/07/17
投稿数: 2
投稿日時: 2006-07-17 17:56
Win XP Pro + VB.NET で開発しています。

EPSON TM-L90(サーマルレシートプリンタ) + EPSON Advanced Printer Driver で
バーコードを印刷しようと思っています。
"Barcode3" や "2D-Code2" といったデバイスフォント(プリンタフォント)はGDI関数を使わないと.NETでは印刷できないと書いてあったのですが、具体的な書き方がわかりません。

バーコードが印刷されるはずが数字が印刷されてしまいます。
GDI関数を使ってデバイスフォントを印刷する方法、ご教授お願い致します。


[VB.NET うまく動いてない]

Private Sub Button2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click
PrintDocument2.PrinterSettings.PrinterName = "EPSON TM-L90 Label"
PrintDocument2.Print()
End Sub

Private Sub PrintDocument2_PrintPage(ByVal sender As System.Object, _
ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument2.PrintPage
Dim g As Graphics = e.Graphics
g.DrawString("商品名", New Font("MS UI Gothic", 8, FontStyle.Regular, _
GraphicsUnit.Point), Brushes.Black, 0, 0)
g.DrawString("4908609100359", New Font("Barcode3", 14, FontStyle.Regular, _
GraphicsUnit.Point), Brushes.Black, 0, 5)
e.HasMorePages = False
g.Dispose()
End Sub



[VB6.0では 下記で動いています]

Private Sub Command1_Click(Index As Integer)
strMyPrinter = "EPSON TM-L90 Label"
For Each objPrinter In Printers
If objPrinter.DeviceName = strMyPrinter Then
Set Printer = objPrinter
End If
Next
Printer.Font.Charset = 128
Printer.Font.Size = 8
Printer.Font.Name = "MS UI Gothic"
Printer.Print "商品名"
Printer.Font.Charset = 0
Printer.Font.Size = 14
Printer.Font.Name = "Barcode3"
Printer.Print "4908609100359"
Printer.EndDoc
End Sub


[ メッセージ編集済み 編集者: るちあーの 編集日時 2006-07-18 10:40 ]
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-07-19 10:58
ちょっと特異すぎて回答を得るのは難しいのではないかと・・・メーカーに聞いたほうが早くない?
引用:

"Barcode3" や "2D-Code2" といったデバイスフォント(プリンタフォント)はGDI関数を使わないと.NETでは印刷できないと書いてあったのですが、具体的な書き方がわかりません。


と言う事は「マネージドコードで記述するのではなく、WindowsAPIを直接呼び出してください」と言っているのでは?

代替案としては、この機会にOPOSに移行するとか。

[ メッセージ編集済み 編集者: 甕星 編集日時 2006-07-19 11:00 ]
るちあーの
会議室デビュー日: 2006/07/17
投稿数: 2
投稿日時: 2006-07-24 17:04
甕星さん、ありがとうございます。

メーカーへ聞くと同時に、もうちょっと勉強してみます。
1

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