Dela via


Komplex skriptbearbetning

Följande är alternativ för visning och relaterad bearbetning av text för att stödja fina typografieffekter eller komplexa skript:

  • Textfunktioner
  • Redigera kontroller
  • Omfattande redigeringskontroller
  • Uniscribe

Vilka alternativ du väljer beror på följande faktorer:

  • Typ av text eller skript.
  • Implementeringsmodellen, till exempel textlayouten och hanteringen av radbrytning av programmet.
  • Uppdatering av ett befintligt program jämfört med att skapa ett nytt program.

I allmänhet kan ett program som utför relativt enkel skriptbearbetning välja valfritt alternativ för bearbetning av komplexa skript. För den mest fullständiga kontrollen av komplex skriptbearbetning rekommenderas uniscribe.

Komplex skriptbearbetning med hjälp av textfunktioner

Program som använder mestadels oformaterad text, det vill: text som använder samma typsnitt, vikt, färg och så vidare, har traditionellt skrivit text och mätt radlängder med hjälp av standardtextfunktioner, till exempel TextOut, ExtTextOut, TabbedTextOut, DrawTextoch GetTextExtentExPoint. Dessa funktioner stöder bearbetning för komplexa skript och fina typografieffekter. För mer information, se Teckensnitt och Text.

I allmänhet är standardtextstödet transparent för program som bearbetar komplexa skript. Du bör dock vara medveten om vissa specifika regler som ska följas när du skriver program som stöder fin typografi och processkomplexa skript:

  • Programmet bör spara tecken i en buffert och visa en hel textrad samtidigt i stället för att till exempel anropa ExtTextOut på varje tecken när det skrivs in av användaren. Med den här mekanismen kan avancerade textformningsmoduler använda kontext för att ordna om och generera glyfer korrekt.
  • Programmet bör använda GetTextExtentExPoint- för att fastställa radlängd, i stället för att beräkna radlängder från cachelagrade teckenbredder, eftersom bredden på en glyf kan variera beroende på kontext.
  • Programmet bör eventuellt lägga till stöd för höger-till-vänster-läsordning och högerjustering.
  • Den omordning och kontextuella bearbetning som krävs för komplexa skript eller fin typografi kräver en betydande ökning av bearbetning över grundläggande textvisning för enkla skript. För att undvika prestandaproblem bör programmet därför inte bearbeta stora mängder text innan resultatet visas och kontrollen returneras till användaren.

Komplex skriptbearbetning med hjälp av redigeringskontroller

Standardkontrollerna för Windows-redigering har utökats för att stödja flerspråkig text och komplexa skript. Det utökade stödet omfattar indata och visning, samt rätt markörförflyttning över teckenkluster, till exempel i thailändska och Devanagari-skript. För mer information, se Redigeringskontroller.

Komplex skriptbearbetning med hjälp av omfattande redigeringskontroller

Rich Edit 3.0 är en samling gränssnitt på högre nivå som utnyttjar Uniscribe för att isolera textlayoutprogram från komplexiteten i vissa skript. Rich Edit är det enklaste sättet för program att visa komplexa texter även när deras primära syfte inte nödvändigtvis är textlayout. Rich Edit erbjuder snabb och mångsidig redigering av flerspråkig Unicode-text och bara oformaterad text. Den innehåller omfattande meddelande- och COM-gränssnitt, textredigering, formatering, radbrytning, enkel tabelllayout, lodrät textlayout, dubbelriktad textlayout, indiciskt och thailändskt stöd, ett redigeringsanvändargränssnitt som liknar Microsoft Word- och textobjektmodellgränssnitt.

Tillsammans med rich edit-gränssnitten kan program använda funktionen Rich Edit TextOut för att automatiskt parsa, forma, placera och bryta linjer. Mer information finns i Rich Edit Controls.

Komplex skriptbearbetning med uniscribe

Uniscribe ger det mest omfattande stödet för bearbetning av text med fin typografieffekter och komplexa skript. Den stöder de komplexa regler som finns i skript som arabiska, Devanagari och thailändska. Den hanterar skript som skrivits från höger till vänster, till exempel arabiska och hebreiska, och stöder blandning av skript. Uniscribe exponerar också OpenType- teckensnittsfunktioner som kan användas av program för att kontrollera fintypografieffekter. Mer information finns i Processing Complex Scripts.

Om Uniscribe

Bearbetning av komplexa skript