C#或VB缩放发送到打印机的文本

时间:2012-12-28 07:17:43

标签: c# .net vb.net printing

enter image description here

我用它来打印标签打印机:

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风格干净清晰的字体。

有没有办法缩放文字以水平“挤压”它们?我不是在谈论使用较小的字体,因为整个单词会变小。我希望它保持相同的高度,只需缩小它。

1 个答案:

答案 0 :(得分: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替换为适合您的打印机的刻度值。