2012-12-28 41 views
0

enter image description hereC#或VB縮放文本發送到打印機

我用這來打印文本到標籤打印機:

Private Sub PrintTextControl_PrintPage(
    ByVal sender As System.Object, 
    ByVal e As System.Drawing.Printing.PrintPageEventArgs) 
    Handles PrintTextControl.PrintPage 
    '..... 
    e.Graphics.DrawString("Hello World", font1, Brushes.Black, x, y, strFormat) 
    '..... 
End Sub 

它運作良好,除了標準的字體是相當廣泛對於標籤打印機,甚至是「Arial Narrow」。

我喜歡Arial/Sanserif風格的字體,因爲它們乾淨清晰。我查看了第三方非標準字體,但沒有找到任何Airal/Sanserif風格的清晰字體。

有沒有辦法縮放文本以「水平」擠壓它們?我不是在談論使用更小的字體,因爲整個字會變得更小。我希望它保持相同的高度,只是縮小它的範圍。

+0

這是wpf嗎? http://msdn.microsoft.com/en-us/library/system.windows.controls.control.fontstretch.aspx –

+0

http://www.vbforums.com/showthread.php?627135-Getting-Font-Kerning-值 – Steve

+0

對不起,忘了提及。這是一個DLL。適用於我們公司的Winform應用程序和Web應用程序。 – Tom

回答

1

嘗試了這一點:

Private Sub PrintTextControl_PrintPage(
    ByVal sender As System.Object, 
    ByVal e As System.Drawing.Printing.PrintPageEventArgs) 
    Handles PrintTextControl.PrintPage 
    '..... 
    Dim scaleMatrix As New Matrix() 
    scaleMatrix.Scale(0.8, 1) 
    e.Graphics.Transform = scaleMatrix 
    e.Graphics.DrawString("Hello World", font1, Brushes.Black, x, y, strFormat) 
    '..... 
End Sub 

只是適合您的打印機的刻度值替換0.8。

+0

太好了。看起來這是我需要的。我現在正在測試它。 – Tom