ImageGear .NET v25.1 - Updated
FindUnrepresentableCharacters Method
Example 




ImageGear.Formats.Pdf Assembly > ImageGear.Formats.PDF Namespace > ImGearPDEFont Class : FindUnrepresentableCharacters Method
String with Unicode characters.
Gets a collection of characters in the Unicode string that could not be represented in the font.
Syntax
'Declaration
 
Public Function FindUnrepresentableCharacters( _
   ByVal text As String _
) As ReadOnlyCollection(Of Char)
'Usage
 
Dim instance As ImGearPDEFont
Dim text As String
Dim value As ReadOnlyCollection(Of Char)
 
value = instance.FindUnrepresentableCharacters(text)
public ReadOnlyCollection<char> FindUnrepresentableCharacters( 
   string text
)
public: ReadOnlyCollection<char>* FindUnrepresentableCharacters( 
   string* text
) 
public:
ReadOnlyCollection<char>^ FindUnrepresentableCharacters( 
   String^ text
) 

Parameters

text
String with Unicode characters.

Return Value

Collection of characters not representable in the font.
Remarks

The Unicode API methods require a TrueType or Type 0 font that can be embedded. This font must be created from a font file on the local machine, because the lookup tables used by these API only exist in the font files. This is required even if you only check for representable text. This method will raise an exception, if used with other fonts, like Type 1 or font retrieved from an existing PDF document.

Example
string textToCheck =
    "Russian: Русский Текст. Greek: Κείμενο στην ελληνική γλώσσα. Japanese (unrepresentable): 日本";

// see the code example in ImGearPDEText.Add
ImGearPDEFont fontSerif = CreateFont("Times-Roman", "Type0", "Identity-H");

// Ensure that the text is fully representable by the font.
// Add a warning if not.
if (!fontSerif.IsTextRepresentable(textToCheck))
{
    System.Collections.Generic.IEnumerable<char> unrepresentableChars =
        fontSerif.FindUnrepresentableCharacters(textToCheck);

    string unrepresentableCharsString = String.Empty;
    foreach (char unrepresentableChar in unrepresentableChars)
    {
        if (unrepresentableCharsString != String.Empty)
        {
            unrepresentableCharsString += ",";
        }

        unrepresentableCharsString += unrepresentableChar;
    }

    MessageBox.Show(
        string.Format(
            "The selected font, {0}, does not support the following characters: [{1}]",
            fontSerif.GetAttributes().Name.String, unrepresentableCharsString));
}
Dim textToCheck As String = "Russian: Русский Текст. Greek: Κείμενο στην ελληνική γλώσσα. Japanese (unrepresentable): 日本"

' see the code example in ImGearPDEText.Add
Dim fontSerif As ImGearPDEFont = CreateFont("Times-Roman", "Type0", "Identity-H")

' Ensure that the text is fully representable by the font.
' Add a warning if not.
If Not fontSerif.IsTextRepresentable(textToCheck) Then
    Dim unrepresentableChars As System.Collections.Generic.IEnumerable(Of Char) = fontSerif.FindUnrepresentableCharacters(textToCheck)

    Dim unrepresentableCharsString As String = [String].Empty
    For Each unrepresentableChar As Char In unrepresentableChars
        If unrepresentableCharsString <> [String].Empty Then
            unrepresentableCharsString += ","
        End If

        unrepresentableCharsString += unrepresentableChar
    Next

    MessageBox.Show(String.Format("The selected font, {0}, does not support the following characters: [{1}]", fontSerif.GetAttributes().Name.[String], unrepresentableCharsString))
See Also

Reference

ImGearPDEFont Class
ImGearPDEFont Members