Skip to content

Commit 37d2293

Browse files
Merge pull request #1916 from syncfusion-content/995109-Update-Support-Script-on-fallback-in-DocIO-and-PPTX-dev
995109 - Update Supported Script types on fallback in DocIO and PowerPoint UG
2 parents 1171937 + 2598448 commit 37d2293

File tree

4 files changed

+1089
-0
lines changed

4 files changed

+1089
-0
lines changed

Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Fallback-Fonts-in-PPTXtoImage-Conversion.md

Lines changed: 248 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,45 @@ using (FileStream fileStreamInput = new FileStream("Template.pptx", FileMode.Ope
103103

104104
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/PPTX-to-Image-conversion/Fallback-fonts-based-on-scripttype).
105105

106+
## Fallback Symbols based on script type
107+
108+
The following code example demonstrates how a user can add fallback fonts for Symbols and Emojis, which Presentation considers internally when converting a PowerPoint presentation to an Image.
109+
110+
{% tabs %}
111+
112+
{% highlight C# tabtitle="C# [Cross-platform]" %}
113+
//Load the PowerPoint presentation into stream.
114+
using (FileStream fileStreamInput = new FileStream("Template.pptx", FileMode.Open, FileAccess.Read))
115+
{
116+
//Open the existing PowerPoint presentation with loaded stream.
117+
using (IPresentation pptxDoc = Presentation.Open(fileStreamInput))
118+
{
119+
//Adds fallback font for basic symbols like bullet characters.
120+
pptxDoc.FontSettings.FallbackFonts.Add(ScriptType.Symbols, "Segoe UI Symbol, Arial Unicode MS, Wingdings");
121+
//Adds fallback font for mathematics symbols.
122+
pptxDoc.FontSettings.FallbackFonts.Add(ScriptType.Mathematics, "Cambria Math, Noto Sans Math, Segoe UI Symbol, Arial Unicode MS");
123+
//Adds fallback font for emojis.
124+
pptxDoc.FontSettings.FallbackFonts.Add(ScriptType.Emoji, "Segoe UI Emoji, Noto Color Emoji, Arial Unicode MS");
125+
//Initialize the PresentationRenderer to perform image conversion.
126+
pptxDoc.PresentationRenderer = new PresentationRenderer();
127+
//Convert PowerPoint slide to image as stream.
128+
using (Stream stream = pptxDoc.Slides[0].ConvertToImage(ExportImageFormat.Jpeg))
129+
{
130+
//Reset the stream position.
131+
stream.Position = 0;
132+
//Create the output image file stream.
133+
using (FileStream fileStreamOutput = File.Create("Output.jpg"))
134+
{
135+
//Copy the converted image stream into created output stream.
136+
stream.CopyTo(fileStreamOutput);
137+
}
138+
}
139+
}
140+
}
141+
{% endhighlight %}
142+
143+
{% endtabs %}
144+
106145
## Fallback fonts for range of Unicode text
107146

108147
Users can set fallback fonts for specific Unicode range of text to be used in Presentation to Image conversion.
@@ -307,6 +346,215 @@ Korean
307346
Malgun Gothic, Batang
308347
</td>
309348
</tr>
349+
<tr>
350+
<td>Tamil</td>
351+
<td>0x0B80 - 0x0BFF</td>
352+
<td>Latha, Nirmala UI, Arial Unicode MS</td>
353+
</tr>
354+
<tr>
355+
<td>Bengali</td>
356+
<td>0x0980 - 0x09FF</td>
357+
<td>Vrinda, Arial Unicode MS, Nikosh, Siyam Rupali, Nirmala UI</td>
358+
</tr>
359+
<tr>
360+
<td>Gujarati</td>
361+
<td>0x0A80 - 0x0AFF</td>
362+
<td>Shruti, Nirmala UI, Arial Unicode MS</td>
363+
</tr>
364+
<tr>
365+
<td>Telugu</td>
366+
<td>0x0C00 - 0x0C7F</td>
367+
<td>Gautami, Nirmala UI, Arial Unicode MS</td>
368+
</tr>
369+
<tr>
370+
<td>Malayalam</td>
371+
<td>0x0D00 - 0x0D7F</td>
372+
<td>Kartika, Nirmala UI, Arial Unicode MS</td>
373+
</tr>
374+
<tr>
375+
<td>Kannada</td>
376+
<td>0x0C80 - 0x0CFF</td>
377+
<td>Tunga, Nirmala UI, Arial Unicode MS</td>
378+
</tr>
379+
<tr>
380+
<td>Ethiopic</td>
381+
<td>0x1200 - 0x137F<br>
382+
0x1380 - 0x139F</td>
383+
<td>Nyala, Ebrima</td>
384+
</tr>
385+
<tr>
386+
<td>Khmer</td>
387+
<td>0x1780 - 0x17FF<br>
388+
0x19E0 - 0x19FF</td>
389+
<td>MoolBoran, DaunPenh, Leelawadee, Leelawadee UI</td>
390+
</tr>
391+
<tr>
392+
<td>Gurmukhi</td>
393+
<td>0x0A00 - 0x0A7F</td>
394+
<td>Raavi, Nirmala UI, Arial Unicode MS</td>
395+
</tr>
396+
<tr>
397+
<td>Canadian</td>
398+
<td>0x1400 - 0x167F</td>
399+
<td>Euphemia, Gadugi</td>
400+
</tr>
401+
<tr>
402+
<td>Cherokee</td>
403+
<td>0x13A0 - 0x13FF<br>
404+
0xAB70 - 0xABBF</td>
405+
<td>Plantagenet Cherokee, Gadugi, Arial Unicode MS</td>
406+
</tr>
407+
<tr>
408+
<td>Yi</td>
409+
<td>0xA000 - 0xA48F<br>
410+
0xA490 - 0xA4CF</td>
411+
<td>Microsoft Yi Baiti, Arial Unicode MS</td>
412+
</tr>
413+
<tr>
414+
<td>Tibetan</td>
415+
<td>0x0F00 - 0x0FFF</td>
416+
<td>Microsoft Himalaya, Nirmala UI, Arial Unicode MS</td>
417+
</tr>
418+
<tr>
419+
<td>Thaana</td>
420+
<td>0x0780 - 0x07BF</td>
421+
<td>MV Boli, Nirmala UI, Arial Unicode MS</td>
422+
</tr>
423+
<tr>
424+
<td>Syriac</td>
425+
<td>0x0700 - 0x074F</td>
426+
<td>Estrangelo Edessa, Segoe UI Historic, Arial Unicode MS</td>
427+
</tr>
428+
<tr>
429+
<td>Odia</td>
430+
<td>0x0B00 - 0x0B7F</td>
431+
<td>Kalinga, Nirmala UI, Arial Unicode MS</td>
432+
</tr>
433+
<tr>
434+
<td>Lao</td>
435+
<td>0x0E80 - 0x0EFF</td>
436+
<td>DokChampa, Lao UI, Leelawadee UI, Arial Unicode MS</td>
437+
</tr>
438+
<tr>
439+
<td>Sinhala</td>
440+
<td>0x0D80 - 0x0DFF</td>
441+
<td>Iskoola Pota, Nirmala UI, Arial Unicode MS</td>
442+
</tr>
443+
<tr>
444+
<td>Mongolian</td>
445+
<td>0x1800 - 0x18AF</td>
446+
<td>Mongolian Baiti, Microsoft YaHei, Arial Unicode MS</td>
447+
</tr>
448+
<tr>
449+
<td>Vietnamese</td>
450+
<td>0x00C0 - 0x00FF<br>
451+
0x0102 - 0x0103<br>
452+
0x0110 - 0x0111<br>
453+
0x0128 - 0x0129<br>
454+
0x0168 - 0x0169<br>
455+
0x01A0 - 0x01A1<br>
456+
0x01AF - 0x01B0<br>
457+
0x0300 - 0x036F</td>
458+
<td>Times New Roman, Arial, Tahoma, Arial Unicode MS</td>
459+
</tr>
460+
<tr>
461+
<td>Georgian</td>
462+
<td>0x10A0 - 0x10FF<br>
463+
0x2D00 - 0x2D2F</td>
464+
<td>Sylfaen, Arial Unicode MS</td>
465+
</tr>
466+
<tr>
467+
<td>Armenian</td>
468+
<td>0x0530 - 0x058F<br>
469+
0xFB13 - 0xFB17</td>
470+
<td>Arial, Sylfaen, Arial Unicode MS</td>
471+
</tr>
472+
<tr>
473+
<td>Buginese</td>
474+
<td>0x1A00 - 0x1A1F</td>
475+
<td>Leelawadee UI, Segoe UI Symbol</td>
476+
</tr>
477+
<tr>
478+
<td>Bopomofo</td>
479+
<td>0x3100 - 0x312F<br>
480+
0x31A0 - 0x31BF</td>
481+
<td>Microsoft JhengHei, PMingLiU, SimSun, Arial Unicode MS</td>
482+
</tr>
483+
<tr>
484+
<td>Javanese</td>
485+
<td>0xA980 - 0xA9DF</td>
486+
<td>Javanese Text, Segoe UI Symbol</td>
487+
</tr>
488+
<tr>
489+
<td>Lisu</td>
490+
<td>0xA4D0 - 0xA4FF</td>
491+
<td>Segoe UI Symbol, Arial Unicode MS</td>
492+
</tr>
493+
<tr>
494+
<td>Burmese</td>
495+
<td>0x1000 - 0x109F<br>
496+
0xAA60 - 0xAA7F</td>
497+
<td>Myanmar Text, Noto Sans Myanmar, Padauk</td>
498+
</tr>
499+
<tr>
500+
<td>NKo</td>
501+
<td>0x07C0 - 0x07FF</td>
502+
<td>Ebrima, Arial Unicode MS</td>
503+
</tr>
504+
<tr>
505+
<td>OlChiki</td>
506+
<td>0x1C50 - 0x1C7F</td>
507+
<td>Nirmala UI, Arial Unicode MS</td>
508+
</tr>
509+
<tr>
510+
<td>Osmanya</td>
511+
<td>0x10480 - 0x104AF</td>
512+
<td>Ebrima, Noto Sans Osmanya</td>
513+
</tr>
514+
<tr>
515+
<td>PhagsPa</td>
516+
<td>0xA840 - 0xA87F</td>
517+
<td>Phagspa, Microsoft PhagsPa, Noto Sans PhagsPa, Arial Unicode MS</td>
518+
</tr>
519+
<tr>
520+
<td>SoraSompeng</td>
521+
<td>0x110D0 - 0x110FF</td>
522+
<td>Nirmala UI, Arial Unicode MS</td>
523+
</tr>
524+
<tr>
525+
<td>TaiLe</td>
526+
<td>0x1950 - 0x197F</td>
527+
<td>Microsoft Tai Le, Arial Unicode MS</td>
528+
</tr>
529+
<tr>
530+
<td>NewTaiLue</td>
531+
<td>0x1980 - 0x19DF</td>
532+
<td>Microsoft New Tai Lue, Arial Unicode MS</td>
533+
</tr>
534+
<tr>
535+
<td>Tifinagh</td>
536+
<td>0x2D30 - 0x2D7F</td>
537+
<td>Ebrima, Arial Unicode MS</td>
538+
</tr>
539+
<tr>
540+
<td>Symbols</td>
541+
<td>0x2000 - 0x27BF<br>
542+
0x2300 - 0x23FF<br>
543+
0xF000 - 0xF104</td>
544+
<td>Segoe UI Symbol, Arial Unicode MS, Wingdings</td>
545+
</tr>
546+
<tr>
547+
<td>Mathematics</td>
548+
<td>0x2200 - 0x2AFF<br>
549+
0x1D400 - 0x1D7FF</td>
550+
<td>Cambria Math, Noto Sans Math, Segoe UI Symbol, Arial Unicode MS</td>
551+
</tr>
552+
<tr>
553+
<td>Emoji</td>
554+
<td>0x1F300 - 0x1FAFF<br>
555+
0xFE0F - 0xFE0F</td>
556+
<td>Segoe UI Emoji, Noto Color Emoji, Arial Unicode MS</td>
557+
</tr>
310558
</table>
311559

312560
N> The .NET PowerPoint Library (Presentation) uses System.Drawing functionalities for PowerPoint to image conversion conversion in .NET Framework applications. And System.Drawing itself uses a fallback font to preserve the Unicode text while drawing the text in the image. So, these Fallback fonts APIs are **not supported in .NET Framework**.

0 commit comments

Comments
 (0)