ImageGear23.Formats.Pdf Assembly > ImageGear.Formats.PDF Namespace > ImGearPDEFont Class : FindUnrepresentableCharacters Method |
'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 )
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.
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))