語言: VB .NET 2010贏形式印刷/圖形問題
範圍: 我已經開發了旨在打印自定義標籤斑馬打印機標籤打印程序。當我試圖將整個標籤作爲圖像打印時,我的打印機清晰度出現問題,因此我試圖將標籤中的所有文本存儲到數組中,清除標籤,將剩餘圖像發送到打印機,以及根據存儲的數組覆蓋新文本。此結果旨在將文本發送到打印機而不是圖像。
問題: 生成的標籤對於文本非常清晰,因爲我需要它但是我的打印方法有對齊問題。對於測試,我將顯示的原始圖像與頂部的疊加文本一起顯示,它們應該在合理範圍內完全對齊或關閉。當這樣做的結果是他們沒有對齊。
測試:
Dim g2 As Graphics
g2 = Form1.PictureBox2.CreateGraphics
g2.CompositingQuality = Drawing2D.CompositingQuality.HighQuality
g2.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
g2.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
g2.Clear(Color.White)
g2.DrawImage(largeimage, New Point(0, 0))
Dim myBrush As Brush
Dim i As Integer = 0
Do Until i = label_array.Count - 1
myBrush = New SolidBrush(label_array(i).ForeColor)
g2.DrawString(label_array(i).Text, label_array(i).Font, myBrush, label_array(i).Location)
i = i + 1
Loop
在印刷方法我用上述方法,以輸出疊加和圖像到一個圖片框。當這樣做不過它的工作原理,...
e.Graphics.CompositingQuality = Drawing2D.CompositingQuality.HighQuality
e.Graphics.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
e.Graphics.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
e.Graphics.Clear(Color.White)
e.Graphics.DrawImage(largeimage, New Point(0, 0))
i = 0
Do Until i = label_array.Count - 1
myBrush = New SolidBrush(label_array(i).ForeColor)
e.Graphics.DrawString(label_array(i).Text, label_array(i).Font, myBrush, label_array(i).Location)
i = i + 1
Loop
它..doing上文不對結果中顯示的打印圖形...
任何想法,歡迎我會嘗試任何事情。我猜測印刷圖形是從我不知道的正常圖形中做些額外的事情。
我沒有注意到TextRenderer.DrawText與DrawString相比改進了結果。使用這種但是當結果似乎通過某種未知的比例因子從原來的縮放...
下面是對上面所產生的疊加原:
在創建新筆刷之前,不要忘記處理舊筆刷。 – ja72 2013-02-25 16:24:02
請注意,「矩形」的打印始終從屏幕上的「(0,0)」開始,而不是在打印機上開始。檢查打印矩形'.Left'和'.Top'屬性並相應地偏移文本。 – ja72 2013-02-25 16:25:58
保證金邊界=(100,100)和頁面邊界=(0,0),所以我沒有看到真正的相關性。 – 2013-02-25 17:41:18