ImageGear v26.5 - Updated
ImageGear.Formats.Pdf Assembly / ImageGear.Formats.PDF Namespace / ImGearPDEFont Class / FindUnrepresentableCharacters Method
String with Unicode characters.
Example




In This Topic
    FindUnrepresentableCharacters Method
    In This Topic
    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