Option Explicit
Public Enum picPrintAlignEnum
ppTopLeft = 0
ppTopCenter = 1
ppTopRight = 2
ppCenterLeft = 3
ppCenterCenter = 4
ppCenterRight = 5
ppBottomLeft = 6
ppBottomCenter = 7
ppBottomRight = 8
End Enum
Public Sub CaptionToPicBox(cap As String, pBox As PictureBox, Optional pp As picPrintAlignEnum = ppTopLeft)
On Error Resume Next
Dim x As Long, y As Long
pBox.AutoRedraw = True
pBox.Cls
Set pBox.Picture = Nothing
Select Case pp
Case ppTopLeft
x = 0
y = 0
Case ppTopCenter
y = 0
x = pBox.ScaleWidth / 2 - (pBox.TextWidth(cap) / 2)
Case ppTopRight
y = 0
x = pBox.ScaleWidth - pBox.TextWidth(cap)
Case ppCenterLeft
x = 0
y = pBox.ScaleHeight / 2 - (pBox.TextHeight(cap) / 2)
Case ppCenterCenter
y = pBox.ScaleHeight / 2 - (pBox.TextHeight(cap) / 2)
x = pBox.ScaleWidth / 2 - (pBox.TextWidth(cap) / 2)
Case ppCenterRight
y = pBox.ScaleHeight / 2 - (pBox.TextHeight(cap) / 2)
x = pBox.ScaleWidth - pBox.TextWidth(cap)
Case ppBottomLeft
y = pBox.ScaleHeight - pBox.TextHeight(cap)
x = 0
Case ppBottomCenter
y = pBox.ScaleHeight - pBox.TextHeight(cap)
x = pBox.ScaleWidth / 2 - (pBox.TextWidth(cap) / 2)
Case ppBottomRight
y = pBox.ScaleHeight - pBox.TextHeight(cap)
x = pBox.ScaleWidth - pBox.TextWidth(cap)
End Select
pBox.CurrentX = x
pBox.CurrentY = y
pBox.Print cap
Set pBox.Picture = pBox.Image
pBox.AutoRedraw = False
End Sub
Private Sub cmdACTION_Click(Index As Integer)
On Error Resume Next
CaptionToPicBox Me.txtCAPTION.Text, picBOX, CLng(Index)
End Sub
---------------------------------------------------------------------------------------------------
Usa un picture en lugar de un label y con el objeto printer lo haces
Utiliza la funcion que te paso que anda perfecto y creo que solucionaria tu problema
Saludos