Beskikbaarheid En Vervanging van lettertipes
Contents
[
Hide
]
‘n teks in’n dokument kan met verskillende lettertipes geformateer word, soos Arial, Times new Roman, Verdana en ander. Wanneer Aspose.Words ‘n dokument weergee, probeer dit om die lettertipes te kies wat in die dokument gespesifiseer is.
Daar is egter situasies waar die presiese lettertipe nie gevind kan word nie en Aspose.Words dit moet vervang deur’n soortgelyke lettertipe. Aspose.Words kies die lettertipe volgens die volgende proses:
- Aspose.Words probeer om’n lettertipe te vind onder die beskikbare lettertipe bronne met’n presiese lettertipe naam.
- Aspose.Words probeer om die vereiste lettertipe te vind onder die lettertipes wat in die oorspronklike dokument ingebed is. Sommige dokumentformate soos DOCX kan ingebedde lettertipes bevat.
- As Aspose.Words nie die vereiste lettertipe kan vind met die presiese naam wat ooreenstem nie, en die AltName eienskap wat vir hierdie lettertipe gedefinieer is, dan sal Aspose.Words die lettertipe vind wat met AltName gedefinieer is uit die FontInfo klas, wat die lettertipe inligting spesifiseer.
- As Aspose.Words nie die gedefinieerde lettertipe kan opspoor nie, en AltName nie ook gedefinieer is nie, word die lettertipe vervangingsreëls een vir een toegepas, soos hieronder beskryf (wanneer die toepaslike vervanging gevind word, stop die Lettertipe Vervangingsproses en die volgende stap word nie uitgevoer nie):
- Aspose.Words sal probeer om OS lettertipe instellings toe te pas, indien hulle beskikbaar is, deur die
FontConfig
nut te gebruik. Hierdie nie-Windows kenmerk moet gebruik word met’n FontConfig - versoenbare OS. Byna enige Unix-gebaseerde OS het reeds’nFontConfig
biblioteek wat ontwerp is om stelselwye lettertipe-konfigurasie, aanpassing en toegang tot toepassings te bied. Andersins kan hierdie biblioteek maklik deur die gebruiker geïnstalleer word.
Aspose.Words weet hoe om data te navraag doen en FontConfig resultate vir sy eie doeleindes te interpreteer. By verstek is dieFontConfig
nut gedeaktiveer. Jy kan dit soos volg aktiveer:
C++fontSettings->get_SubstitutionSettings()->get_FontConfigSubstitution()->set_Enabled(true);
- Die volgende stap is’n eenvoudige, maar ongelooflik kragtige meganisme genaamd TableSubstitutionRule. By verstek is hierdie funksie aktief en beskikbaar vir enige OS. Aspose.Words gebruik XML tabelle wat basiese vervangingsreëls vir verskillende OS definieer. Volgens die Tabel vervanging reël, sal die lys van vervanging lettertipe name gebruik word.
XMLOriginalFont - ‘n lettertipe wat vervang moet word, SubstituteFonts - lys van vervangingsvariante, geskei deur’n komma. Die eerste beskikbare lettertipe word gebruik vir vervanging.<TableSubstitutionSettings xmlns="Aspose.Words"> <SubstitutesTable> <Item OriginalFont="Arabic Transparent" SubstituteFonts="Arial" /> … </SubstitutesTable> </TableSubstitutionSettings>
Die hoofkenmerk van hierdie reël is die vermoë om jou eie vervangingstabelle te laai, soos dit in die volgende voorbeeld getoon word:
C++U kan die bestaande tabel uit die pot as basis neem of dit programmaties op die volgende manier stoor:fontSettings->get_SubstitutionSettings()->get_TableSubstitution()->Load(u"Table.xml");
C++Ten spyte van die buigsaamheid van hierdie meganisme, is daar’n paar gevalle wanneer dit beter is om dit uit te skakel, soos hieronder getoon:fontSettings->get_SubstitutionSettings()->get_TableSubstitution()->Save(u"MyTable.xml");
C++fontSettings->get_SubstitutionSettings()->get_TableSubstitution()->set_Enabled(false);
- Die FontInfo vervangingsreël sal toegepas word as die tabel vervangingsreël nie die lettertipe kan vind nie. Hierdie meganisme is standaard geaktiveer. Aspose.Words vind die geskikste lettertipe volgens die lettertipe-inligting in’n spesifieke dokument. Hierdie inligting kan verkry word uit die FontInfo klas soos hieronder getoon:
C++Gebruikers kan nie inmeng in die werkstroom van hierdie funksie nie, tensy hulle besluit om dit uit te skakel in geval van onbevredigende resultate:System::SharedPtr<FontInfoCollection> fontInfos = doc->get_FontInfos();
C++As FontInfo nie beskikbaar is vir die ontbrekende lettertipe nie, stop die proses.fontSettings->get_SubstitutionSettings()->get_FontInfoSubstitution()->set_Enabled(false);
- DefaultFont vervangingsreël sal toegepas word in die geval wanneer die
FontInfo
vervanging ook misluk het. Hierdie reël is ook standaard geaktiveer. Volgens hierdie reël sal Aspose.Words probeer om die standaard lettertipe te gebruik wat in die DefaultFontName eienskap gespesifiseer is. As die gebruiker nie hul eie standaard lettertipe gekies het nie, sal “Times new Roman” as die standaard lettertipe gebruik word. Hierdie reël kan gedeaktiveer word soos hieronder getoon:
C++Om die huidige verstekfont te kontroleer, gebruik:fontSettings->get_SubstitutionSettings()->get_DefaultFontSubstitution()->set_Enabled(false);
C++Om jou eie vervangingsopsie op te stel, doen aansoek:fontSettings->get_SubstitutionSettings()->get_DefaultFontSubstitution()->get_DefaultFontName();
C++fontSettings->get_SubstitutionSettings()->get_DefaultFontSubstitution()->set_DefaultFontName(u"Arial");
- Aspose.Words sal probeer om OS lettertipe instellings toe te pas, indien hulle beskikbaar is, deur die
- As Aspose.Words nie die lettertipe vervanging kan uitvoer nie, probeer dit om die eerste beskikbare lettertipe uit beskikbare lettertipe bronne te kry.
- Ten slotte, as Aspose.Words nie enige lettertipes onder die beskikbare lettertipe bronne kan vind nie, maak dit die dokument met behulp van die gratis Fanwood lettertipe wat in die Aspose.Words vergadering ingebed is.
As FontInfo beskikbaar is, sal die FontInfo substitution rule altyd die lettertipe oplos en die standaard lettertipe reël oorskryf. As jy die standaard lettertipe reël wil gebruik, moet jy die FontInfo substitution rule deaktiveer. Let daarop dat die FontConfig substitution rule die lettertipe in die meeste gevalle sal oplos, en dus alle ander reëls oorskry.