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




In This Topic
    IsTextRepresentable Method
    In This Topic
    Checks if the entire contents of a text are representable in the font.
    Syntax
    'Declaration
     
    Public Function IsTextRepresentable( _
       ByVal text As String _
    ) As Boolean
    'Usage
     
    Dim instance As ImGearPDEFont
    Dim text As String
    Dim value As Boolean
     
    value = instance.IsTextRepresentable(text)
    public bool IsTextRepresentable( 
       string text
    )
    public: bool IsTextRepresentable( 
       string* text
    ) 
    public:
    bool IsTextRepresentable( 
       String^ text
    ) 

    Parameters

    text
    String with Unicode characters to check.

    Return Value

    True if the entire text is representable in the font, false otherwise.
    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