If you are outputting your form to a PDF and you also have an InkEdit that has text without any spaces like "fffffffff" and it wraps to the next line, then the PDF generated will not automatically insert carriage returns and the text will go off the bounds of the inkEdit and overlap other parts of the form.
As a workaround here is some example code that checks the width of the inkEdit control and inserts carriage returns in appropriate places so the PDF output looks correct. It is possible that extra if conditionals may have to be added if the string in the inkEdit is too long and would require more than three carriage returns for it to fit properly.
Public Sub CheckWidth(ByVal textField As InkEdit, ByVal maxWidth As int16)
' get the size of the text
Dim textSize As System.Drawing.Size = TextRenderer.MeasureText(textField.Value, textField.Font)
If (Not textField.Value.Contains(" ")) And (textSize.Width > maxWidth) Then
Dim ratio As Double = Double.Parse(textSize.Width) / maxWidth
Dim splits As int16 = Math.Ceiling(ratio)
Dim charLength As int16 = textField.Value.Length
Dim lineLength As Integer = Math.Truncate(Double.Parse(charLength) / splits)
If ( splits == 2 ) Then
' split it into two pieces
Dim textPart1 As String = textField.Value.Substring(0,lineLength)
Dim textPart2 As String = textField.Value.Substring(lineLength,textField.Value.Length - lineLength)
' put in a carriage return
textField.Value = textPart1 & vbCrLf & textPart2
Elseif ( splits == 3 ) Then
' split it into three pieces
Dim textPart1 As String = textField.Value.Substring(0,lineLength)
Dim textPart2 As String = textField.Value.Substring(lineLength, 2*lineLength)
Dim textPart3 As String = textField.Value.Substring(2*lineLength,textField.Value.Length - 2*lineLength)
' put in a carriage return
textField.Value = textPart1 & vbCrLf & textPart2 & vbCrLf & textPart3
Elseif ( splits == 4 ) Then
' split it into four pieces
Dim textPart1 As String = textField.Value.Substring(0,lineLength)
Dim textPart2 As String = textField.Value.Substring(lineLength, 2*lineLength)
Dim textPart3 As String = textField.Value.Substring(2*lineLength, 3*lineLength)
Dim textPart4 As String = textField.Value.Substring(3*lineLength,textField.Value.Length - 3*lineLength)
' put in a carriage return
textField.Value = textPart1 & vbCrLf & textPart2 & vbCrLf & textPart3 & vbCrLf & textPart4
'' Extra ElseIf conditionals could be added here if string is too long
End If
End If
End Sub
To call that function, CheckWidth(), utilize something similar to this so it only reformats the inkEdit for the PDF then sets it back.
'store the value in the field so you can restore it later Dim tempData As String = textField.Value 'send the field you will be checking 'set the max width you will allow in this field 'this number will need to be modified for your form field CheckWidth(_InkEdit, 1000) 'run the PDF Export function - whatever you may call it GeneratePDF() 'now set the original value back textField.Value = tempData