<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Aspose.Slides</title>
    <description>The latest articles on DEV Community by Aspose.Slides (@aspose_slides).</description>
    <link>https://dev.to/aspose_slides</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F961%2F69a6576d-3bfa-4e3c-9921-a1f1336d5d9e.jpg</url>
      <title>DEV Community: Aspose.Slides</title>
      <link>https://dev.to/aspose_slides</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aspose_slides"/>
    <language>en</language>
    <item>
      <title>Emoji in presentation?</title>
      <dc:creator>Alexandra Grazhevskaja</dc:creator>
      <pubDate>Mon, 02 Dec 2019 08:52:34 +0000</pubDate>
      <link>https://dev.to/aspose_slides/emoji-in-presentation-4bc</link>
      <guid>https://dev.to/aspose_slides/emoji-in-presentation-4bc</guid>
      <description>&lt;p&gt;Many people love emoji. Many people on Dev.To love emoji. Emoji start to be a part of everything.&lt;/p&gt;

&lt;p&gt;So, I just want to say that &lt;strong&gt;&lt;a href="https://products.aspose.com/slides?utm_source=https://dev.to/grazhevskaja/emoji-in-presentation-with-aspose-slides-3h1k-temp-slug-1587170/&amp;amp;utm_medium=email"&gt;Aspose.Slides&lt;/a&gt;&lt;/strong&gt; supports working with &lt;strong&gt;emoji in presentations&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgflip.com%2F3h3azc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgflip.com%2F3h3azc.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And, even if you need to convert your presentation with emoji whether to image, PDF, SWF or other format - &lt;a href="https://docs.aspose.com/display/slidesnet/Saving%2C+Printing+and+Managing#Saving,PrintingandManaging-Supportforrenderingemojicharacters?utm_source=https://dev.to/grazhevskaja/emoji-in-presentation-with-aspose-slides-3h1k-temp-slug-1587170/&amp;amp;utm_medium=email"&gt;Aspose.Slides will render emoji&lt;/a&gt; with no problem. You dont need to do anything additional for that, just save presentation in the needed format:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="n"&gt;Presentation&lt;/span&gt; &lt;span class="n"&gt;pres&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;Presentation&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="n"&gt;pres&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;save&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Emoji.pptx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;SaveFormat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Pdf&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or, you may define emoji &lt;a href="https://docs.aspose.com/display/slidesnet/create+fallback+font?utm_source=https://dev.to/grazhevskaja/emoji-in-presentation-with-aspose-slides-3h1k-temp-slug-1587170/&amp;amp;utm_medium=email"&gt;substitution rules&lt;/a&gt; this way, to be sure how they will substitute each other:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Define fallback fonts&lt;/span&gt;
&lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;fontNames&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s"&gt;"Segoe UI Emoji, Segoe UI Symbol"&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="c1"&gt;// Create fallback font rule&lt;/span&gt;
&lt;span class="n"&gt;IFontFallBackRule&lt;/span&gt; &lt;span class="n"&gt;thirdRule&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;FontFallBackRule&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0x1F300&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0x1F64F&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fontNames&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The API is available for other languages too: Java, C++, Android, etc.&lt;/p&gt;




&lt;p&gt;Have you ever used emoji in presentations?&lt;br&gt;
Have you ever created your own emoji?👇👇👇&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>beginners</category>
      <category>programming</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Create presentation viewer for your Android📱 [use case]</title>
      <dc:creator>Alexandra Grazhevskaja</dc:creator>
      <pubDate>Fri, 29 Nov 2019 13:34:01 +0000</pubDate>
      <link>https://dev.to/aspose_slides/create-presentation-viewer-for-your-android-use-case-3c7a</link>
      <guid>https://dev.to/aspose_slides/create-presentation-viewer-for-your-android-use-case-3c7a</guid>
      <description>&lt;p&gt;I will show how to create your own mobile presentation viewer with &lt;strong&gt;&lt;a href="https://products.aspose.com/slides/android-java?utm_source=https://dev.to/grazhevskaja/create-presentation-viewer-for-android-3ngj-temp-slug-6238644&amp;amp;utm_medium=email"&gt;Aspose.Slides API for Android&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This is the &lt;strong&gt;first article in a series&lt;/strong&gt;, where I will pass you through some trivial and non-trivial scenarious, like: edit and convert presentation from mobile; upload presentation as a web application or add it to &lt;a href="https://dashboard.aspose.cloud/?utm_source=https://dev.to/grazhevskaja/create-presentation-viewer-for-android-3ngj-temp-slug-6238644&amp;amp;utm_medium=email"&gt;Aspose Cloud Storage&lt;/a&gt;; share presentation in various formats; generate unique presenation key; and many others. &lt;/p&gt;

&lt;p&gt;Please stay tuned and share which other cases you are interested to see.👇&lt;/p&gt;

&lt;h2&gt;
  
  
  Presentation viewer for Android:
&lt;/h2&gt;

&lt;p&gt;So, let us start with the first step - basic presentation viewer!👩‍💻&lt;/p&gt;

&lt;p&gt;I will pass you through the key points, while you can find the whole project on &lt;strong&gt;&lt;a href="https://github.com/agrazhevskaja/aspose-slides-use-cases/tree/master/slides-android-demo-app-develop?utm_source=https://dev.to/grazhevskaja/create-presentation-viewer-for-android-3ngj-temp-slug-6238644&amp;amp;utm_medium=email"&gt;GitHub&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Open &lt;a href="https://developer.android.com/guide" rel="noopener noreferrer"&gt;Android Studio&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://downloads.aspose.com/slides/androidjava?utm_source=https://dev.to/grazhevskaja/create-presentation-viewer-for-android-3ngj-temp-slug-6238644&amp;amp;utm_medium=email"&gt;Install&lt;/a&gt;&lt;/strong&gt; latest Aspose.Slides API for Android.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Define &lt;strong&gt;&lt;a href="https://github.com/agrazhevskaja/aspose-slides-use-cases/blob/master/slides-android-demo-app-develop/src/main/java/com/aspose/slides/demoapp/MainActivity.java?utm_source=https://dev.to/aspose_slides/create-presentation-viewer-for-your-android-use-case-3c7a&amp;amp;utm_medium=email"&gt;Main Layout&lt;/a&gt;&lt;/strong&gt; with &lt;strong&gt;btnOpenPresentation&lt;/strong&gt; button, or just take it from link.&lt;br&gt;
My lookes simply this way:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FXLKuA4B.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FXLKuA4B.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create &lt;strong&gt;&lt;a href="https://github.com/agrazhevskaja/aspose-slides-use-cases/blob/master/slides-android-demo-app-develop/src/main/res/layout/activity_main.xml?utm_source=https://dev.to/aspose_slides/create-presentation-viewer-for-your-android-use-case-3c7a&amp;amp;utm_medium=email"&gt;Main Activity&lt;/a&gt;&lt;/strong&gt; and add this code to &lt;strong&gt;onCreate&lt;/strong&gt; method, which will launch Presentation Activity by btnOpenPresentation click:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MainActivity&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;AppCompatActivity&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;

    &lt;span class="nd"&gt;@Override&lt;/span&gt;
    &lt;span class="kd"&gt;protected&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;onCreate&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;Bundle&lt;/span&gt; &lt;span class="n"&gt;savedInstanceState&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
       &lt;span class="c1"&gt;// ...&lt;/span&gt;

       &lt;span class="c1"&gt;// Start Presentation activity on Open button click&lt;/span&gt;
       &lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="nc"&gt;Button&lt;/span&gt; &lt;span class="n"&gt;btnOpenPresentation&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;findViewById&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="no"&gt;R&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;btnOpenPresentation&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
          &lt;span class="n"&gt;btnOpenPresentation&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setOnClickListener&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;View&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;OnClickListener&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
          &lt;span class="nd"&gt;@Override&lt;/span&gt;
          &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;onClick&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;View&lt;/span&gt; &lt;span class="n"&gt;view&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
             &lt;span class="n"&gt;execPresentationActivity&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
       &lt;span class="o"&gt;}});&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="c1"&gt;// Start Presentation activity&lt;/span&gt;
    &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;execPresentationActivity&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
       &lt;span class="nc"&gt;Intent&lt;/span&gt; &lt;span class="n"&gt;openPresentationIntent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Intent&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;MainActivity&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;this&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
       &lt;span class="nc"&gt;PresentationActivity&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
       &lt;span class="n"&gt;startActivity&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;openPresentationIntent&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create &lt;strong&gt;&lt;a href="https://github.com/agrazhevskaja/aspose-slides-use-cases/blob/master/slides-android-demo-app-develop/src/main/res/layout/activity_presentation.xml" rel="noopener noreferrer"&gt;Presentation Layout&lt;/a&gt;&lt;/strong&gt; with slides’ carousele and a control to show the current slide, or just take it from link.&lt;br&gt;
My looks simply this way, but there is a lot of space to show creativity here👩‍🎨.&lt;br&gt;
Actually, this is a final application we should get:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FhpGWN8f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FhpGWN8f.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create &lt;strong&gt;&lt;a href="https://github.com/agrazhevskaja/aspose-slides-use-cases/blob/master/slides-android-demo-app-develop/src/main/java/com/aspose/slides/demoapp/PresentationActivity.java?utm_source=https://dev.to/grazhevskaja/create-presentation-viewer-for-android-3ngj-temp-slug-6238644&amp;amp;utm_medium=email"&gt;Presentation Activity&lt;/a&gt;&lt;/strong&gt;.&lt;br&gt;
Now, let us stop more detailed.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Define &lt;strong&gt;execFilePicker()&lt;/strong&gt; method and call it from &lt;strong&gt;onCreate()&lt;/strong&gt; in Presentation Activity. This method will open the file system, that we could choose the presentation file this way:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FDGDeQ5k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FDGDeQ5k.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;All this is done just in 3 lines:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PresentationActivity&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;AppCompatActivity&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;

    &lt;span class="nd"&gt;@Override&lt;/span&gt;
    &lt;span class="kd"&gt;protected&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;onCreate&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;Bundle&lt;/span&gt; &lt;span class="n"&gt;savedInstanceState&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;execFilePicker&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="c1"&gt;// Open File system to choose presentation file&lt;/span&gt;
    &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;execFilePicker&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="nc"&gt;Intent&lt;/span&gt; &lt;span class="n"&gt;mRequestFileIntent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Intent&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;Intent&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ACTION_GET_CONTENT&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="n"&gt;mRequestFileIntent&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setType&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
        &lt;span class="n"&gt;startActivityForResult&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mRequestFileIntent&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="no"&gt;READ_REQUEST_CODE&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Note that we’ve passed READ_REQUEST_CODE to startActivityForResult method. We will use it to check activity result in &lt;strong&gt;onActivityResult&lt;/strong&gt; method and know if we can load the presentation chosen:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PresentationActivity&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;AppCompatActivity&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;

    &lt;span class="nd"&gt;@Override&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;onActivityResult&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;requestCode&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;resultCode&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;Intent&lt;/span&gt; &lt;span class="n"&gt;resultData&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;requestCode&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="no"&gt;READ_REQUEST_CODE&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;resultCode&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="no"&gt;RESULT_OK&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;resultData&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
            &lt;span class="nc"&gt;Uri&lt;/span&gt; &lt;span class="n"&gt;uri&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;resultData&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getData&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;

            &lt;span class="c1"&gt;// Load chosen presentation&lt;/span&gt;
            &lt;span class="n"&gt;execLoadPresentation&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;uri&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In previous method we’ve called &lt;strong&gt;execLoadPresentation&lt;/strong&gt; method to load chosen presentation.&lt;br&gt;
Then &lt;strong&gt;selectSlide&lt;/strong&gt; method can be called to select the slide of the presentation, which should be shown on Presentation Layout.&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PresentationActivity&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;AppCompatActivity&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;

  &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="nc"&gt;SlidesApp&lt;/span&gt; &lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

  &lt;span class="c1"&gt;// Invoke LoadPresentationTask to load chosen presentation&lt;/span&gt;
  &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;execLoadPresentation&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;Uri&lt;/span&gt; &lt;span class="n"&gt;uri&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="kd"&gt;throws&lt;/span&gt; &lt;span class="nc"&gt;IOException&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
      &lt;span class="nc"&gt;InputStream&lt;/span&gt; &lt;span class="n"&gt;input&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;getContentResolver&lt;/span&gt;&lt;span class="o"&gt;().&lt;/span&gt;&lt;span class="na"&gt;openInputStream&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;uri&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
      &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;LoadPresentationTask&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;).&lt;/span&gt;&lt;span class="na"&gt;execute&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;input&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;

  &lt;span class="c1"&gt;// Invoke SelectSlideTask to select a slide to be shown&lt;/span&gt;
  &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;selectSlide&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;pos&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;SelectSlideTask&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;).&lt;/span&gt;&lt;span class="na"&gt;execute&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pos&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Now lets create &lt;strong&gt;LoadPresentationTask&lt;/strong&gt; and &lt;strong&gt;SelectSlideTask&lt;/strong&gt; classes used in two previous methods.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LoadPresentationTask&lt;/strong&gt; will do the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;doInBackground&lt;/strong&gt; - set the presenation, choosed by user, as the current one.
&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;LoadPresentationTask&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;AsyncTask&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;InputStream&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;Void&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;Presentation&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Set chosen presentation as current one&lt;/span&gt;
    &lt;span class="nd"&gt;@Override&lt;/span&gt;
    &lt;span class="kd"&gt;protected&lt;/span&gt; &lt;span class="nc"&gt;Presentation&lt;/span&gt; &lt;span class="nf"&gt;doInBackground&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;InputStream&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt; &lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="nc"&gt;InputStream&lt;/span&gt; &lt;span class="n"&gt;input&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;];&lt;/span&gt;
        &lt;span class="nc"&gt;Presentation&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;input&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt; &lt;span class="o"&gt;?&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Presentation&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Presentation&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;input&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

        &lt;span class="c1"&gt;// Call setPresentation by SlidesApp to set chosen presentation as current one&lt;/span&gt;
        &lt;span class="n"&gt;presentationActivity&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;app&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setPresentation&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;presentationActivity&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;currSlideViewSize&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;presentationActivity&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;slidesListViewSize&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;&lt;strong&gt;SelectSlideTask&lt;/strong&gt; will do the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;doInBackground&lt;/strong&gt; - select the slide of presentation to be shown on Presentation Layout.
&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;SelectSlideTask&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;AsyncTask&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Integer&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;Void&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;Bitmap&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; 
&lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Select the slide, that should be shown&lt;/span&gt;
    &lt;span class="nd"&gt;@Override&lt;/span&gt;
    &lt;span class="kd"&gt;protected&lt;/span&gt; &lt;span class="nc"&gt;Bitmap&lt;/span&gt; &lt;span class="nf"&gt;doInBackground&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;Integer&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt; &lt;span class="n"&gt;ints&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;pos&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ints&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;];&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;presentationActivity&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;app&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;selectSlide&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pos&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;These tasks refer to presentationActivity.app.&lt;strong&gt;setPresentation()&lt;/strong&gt; and presentationActivity.app.&lt;strong&gt;selectSlide()&lt;/strong&gt;, where presentationActivity.app - is the instance of &lt;strong&gt;SlidesApp&lt;/strong&gt; class, which manages all logic about Presentation and Slide objects.&lt;/p&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;In the end, we came to the main part of the story.👩‍🏫&lt;br&gt;
&lt;strong&gt;❗️THE MAGIC STARTS HERE!❗️&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/agrazhevskaja/aspose-slides-use-cases/blob/master/slides-android-demo-app-develop/src/main/java/com/aspose/slides/demoapp/SlidesApp.java?utm_source=https://dev.to/grazhevskaja/create-presentation-viewer-for-android-3ngj-temp-slug-6238644&amp;amp;utm_medium=email"&gt;SlidesApp&lt;/a&gt;&lt;/strong&gt; class incapsulates all the logic to work with &lt;strong&gt;&lt;a href="https://products.aspose.com/slides/android-java?utm_source=https://dev.to/grazhevskaja/create-presentation-viewer-for-android-3ngj-temp-slug-6238644&amp;amp;utm_medium=email"&gt;Aspose.Slides API for Android&lt;/a&gt;&lt;/strong&gt;.&lt;br&gt;
This class will allow us to locally save presentation, get all slides, set current slide, convert it into the thumbnail, calculate thumbnail’s size, etc.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Import &lt;strong&gt;&lt;a href="https://apireference.aspose.com/cpp/slides/class/aspose.slides.i_presentation/?utm_source=https://dev.to/grazhevskaja/create-presentation-viewer-for-android-3ngj-temp-slug-6238644&amp;amp;utm_medium=email"&gt;IPresentation&lt;/a&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;a href="https://apireference.aspose.com/cpp/slides/class/aspose.slides.i_slide/?utm_source=https://dev.to/grazhevskaja/create-presentation-viewer-for-android-3ngj-temp-slug-6238644&amp;amp;utm_medium=email"&gt;ISlide&lt;/a&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;a href="https://apireference.aspose.com/cpp/slides/class/aspose.slides.i_slide_collection/?utm_source=https://dev.to/grazhevskaja/create-presentation-viewer-for-android-3ngj-temp-slug-6238644&amp;amp;utm_medium=email"&gt;ISlideCollection&lt;/a&gt;&lt;/strong&gt; types:&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;com.aspose.slides.IPresentation&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;com.aspose.slides.ISlide&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;com.aspose.slides.ISlideCollection&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;




&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Add &lt;strong&gt;SlidesApp&lt;/strong&gt; class with the instances of current presentation and current slide:&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;SlidesApp&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Application&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="nc"&gt;IPresentation&lt;/span&gt; &lt;span class="n"&gt;presentation&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="nc"&gt;Bitmap&lt;/span&gt; &lt;span class="n"&gt;currSlide&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="c1"&gt;//...&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;




&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Now lets implement &lt;strong&gt;selectSlide&lt;/strong&gt; method, that will call getSlides to retrieve all presentation slides, then get the slide needed by its id. And, get the thumbnail of the slide with &lt;strong&gt;getThumbnail&lt;/strong&gt; method.&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;SlidesApp&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Application&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="nc"&gt;Bitmap&lt;/span&gt; &lt;span class="nf"&gt;selectSlide&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;idx&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;//...&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;currSlide&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;presentation&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getSlides&lt;/span&gt;&lt;span class="o"&gt;().&lt;/span&gt;&lt;span class="na"&gt;get_Item&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;idx&lt;/span&gt;&lt;span class="o"&gt;).&lt;/span&gt;&lt;span class="na"&gt;getThumbnail&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;slideThumbnailSize&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;currSlide&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;




&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;The thumbnail is saved into currSlide property and returned back into SelectSlideTask, which will draw it on Presentation Layout:&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PresentationActivity&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;AppCompatActivity&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="nc"&gt;ImageView&lt;/span&gt; &lt;span class="n"&gt;currSlide&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="c1"&gt;//...&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;SelectSlideTask&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;AsyncTask&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Integer&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;Void&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;Bitmap&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; 
&lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="nc"&gt;PresentationActivity&lt;/span&gt; &lt;span class="n"&gt;presentationActivity&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

    &lt;span class="nd"&gt;@Override&lt;/span&gt;
    &lt;span class="kd"&gt;protected&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;onPostExecute&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;Bitmap&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;// Set thumbnail to currSlide image view, that it could be drawn on Presentation Layout&lt;/span&gt;
        &lt;span class="n"&gt;presentationActivity&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;currSlide&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setImageBitmap&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;




&lt;/li&gt;

&lt;/ol&gt;

&lt;/li&gt;

&lt;/ol&gt;






&lt;p&gt;I have shown you how to developer a basic presentation viewer, while there are a lot of features you can easily add to this application with &lt;strong&gt;&lt;a href="https://products.aspose.com/slides/android-java?utm_source=https://dev.to/grazhevskaja/create-presentation-viewer-for-android-3ngj-temp-slug-6238644&amp;amp;utm_medium=email"&gt;Aspose.Slides API for Android&lt;/a&gt;&lt;/strong&gt; to edit, convert or manage presentation or a certain slide. Check it out &lt;a href="https://docs.aspose.com/display/slidesjava/developer+guide?utm_source=https://dev.to/grazhevskaja/create-presentation-viewer-for-android-3ngj-temp-slug-6238644&amp;amp;utm_medium=email"&gt;here&lt;/a&gt;.👈&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>beginners</category>
      <category>programming</category>
      <category>android</category>
    </item>
    <item>
      <title>Fallback font and font substitution for presentations</title>
      <dc:creator>Alexandra Grazhevskaja</dc:creator>
      <pubDate>Mon, 04 Nov 2019 16:56:39 +0000</pubDate>
      <link>https://dev.to/aspose_slides/fallback-font-and-font-substitution-for-presentations-173o</link>
      <guid>https://dev.to/aspose_slides/fallback-font-and-font-substitution-for-presentations-173o</guid>
      <description>&lt;p&gt;First, I want to explain you why this topic is important:&lt;br&gt;
Imagine, you have developed an application for automated presentations generation.  You used, &lt;strong&gt;&lt;a href="https://products.aspose.com/slides?utm_source=https://dev.to/aspose_slides/fallback-font-and-font-substitution-for-presentations-173o&amp;amp;utm_medium=email"&gt;Aspose.Slides API&lt;/a&gt;&lt;/strong&gt;, for the &lt;a href="https://dev.to/aspose/aspose-apis-save-you-from-ms-office-automation-hell-59dh"&gt;known reasons&lt;/a&gt;, with all it wealth of opportunities. Your application is cool: it uses nice UI templates, AI/ML-based generation from text, finds the right images from internet, showes complicated 3D graphics and statistics data, sends rockets into space...🚀&lt;br&gt;
You run the application and generate hundreds of presentation. But, suddenly you see a small annoying problem with presentations text... - BLACK BOXES instead of characters in text.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;"What’s that? Why? Is that aliens trying to talk to me?"&lt;/strong&gt;&lt;/em&gt; - you think.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/kKBY5n9D5LTuE/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img width="500" src="https://i.giphy.com/media/kKBY5n9D5LTuE/giphy.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Fallback font and Font substitution&lt;/h2&gt;

&lt;p&gt;The answer is: &lt;em&gt;"No. Your computer is just saying he doesnt know the font of your text."&lt;/em&gt;&lt;br&gt;
But there are two backup plans: &lt;strong&gt;fallback font&lt;/strong&gt; and &lt;strong&gt;font substitution&lt;/strong&gt;.&lt;/p&gt;

&lt;h4&gt;Fallback font&lt;/h4&gt;

&lt;p&gt;When your system meets a Unicode character, it checks if it's in the specified font. In case it’s not - it starts to look through all the fonts to find the suitable one, based on the character glyph. The last font - &lt;strong&gt;fallback font&lt;/strong&gt; - has glyphs for all the characters, and it will be checked if the character needed was not found in all other fonts.&lt;br&gt;
Glyphs - are just visual representations of any Unicode character. They are something more meaningful than a black box for missing characters. Systems that don’t have a fallback font usually display black or white rectangles, question marks, the Unicode Replacement Character (U+FFFD), or nothing at all, in place of unfound characters.&lt;/p&gt;

&lt;h4&gt;Fonts substitution&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Font substitution&lt;/strong&gt; is the process of using one font instead of another one, when the initial font either can not be found or does not contain glyphs for the required characters. Font is choosen by similarity, based on: font family, system's font configuration, etc.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;How can I use fallback fonts and font substitution to save the situation?&lt;/strong&gt;&lt;/em&gt; - you ask.&lt;/p&gt;

&lt;h2&gt;How to use it&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://products.aspose.com/slides?utm_source=https://dev.to/aspose_slides/fallback-font-and-font-substitution-for-presentations-173o&amp;amp;utm_medium=email"&gt;Aspose.Slides API&lt;/a&gt;&lt;/strong&gt; has a FontsManager, which allows to flexibily manage fonts in presentation: set, embed, replace, substitute them. In order to control the fallback font replacement, you may define the rules for that, setting font used with the characters Unicode range:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="n"&gt;IFontFallBackRule&lt;/span&gt; &lt;span class="n"&gt;firstRule&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;FontFallBackRule&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;startUnicodeIndex&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;endUnicodeIndex&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Vijaya"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;IFontFallBackRule&lt;/span&gt; &lt;span class="n"&gt;secondRule&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;FontFallBackRule&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0x3040&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0x309F&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"MS Mincho, MS Gothic"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Add them to rules collection and set this collection to FontsManager’s:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="n"&gt;IFontFallBackRulesCollection&lt;/span&gt; &lt;span class="n"&gt;rules&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;FontFallBackRulesCollection&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="n"&gt;rules&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;firstRule&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;rules&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;secondRule&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="n"&gt;presentation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;FontsManager&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;FontFallBackRulesCollection&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;rules&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Now let’s try to render thumbnail with new rules and save to PNG:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="n"&gt;presentation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Slides&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;GetThumbnail&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;1f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;1f&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;Save&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dataDir&lt;/span&gt; &lt;span class="p"&gt;+&lt;/span&gt; &lt;span class="s"&gt;"Slide_0.png"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ImageFormat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Png&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Let us see the result achieved. The first one - is the image without  using the fallback font, the second - uses it.&lt;/p&gt;

&lt;p&gt;Without fallback font:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--F8y_oHBS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/EpO75vC.png" class="article-body-image-wrapper"&gt;&lt;img width="500" src="https://res.cloudinary.com/practicaldev/image/fetch/s--F8y_oHBS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/EpO75vC.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With fallback font:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GB1UudLk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/L859j3I.png" class="article-body-image-wrapper"&gt;&lt;img width="500" src="https://res.cloudinary.com/practicaldev/image/fetch/s--GB1UudLk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/L859j3I.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Font substitution is the same easy to use, and you can find more &lt;strong&gt;&lt;a href="https://docs.aspose.com/display/slidesnet/managing+fonts?utm_source=https://dev.to/aspose_slides/fallback-font-and-font-substitution-for-presentations-173o&amp;amp;utm_medium=email"&gt;here&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href="https://docs.aspose.com/display/slidesnet/manipulating+text?utm_source=https://dev.to/aspose_slides/fallback-font-and-font-substitution-for-presentations-173o&amp;amp;utm_medium=email"&gt;here&lt;/a&gt;&lt;/strong&gt;.👈&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;How many of you know which language is on the images? Please, comment.&lt;/strong&gt;😁👇👇👇 &lt;/p&gt;

</description>
      <category>beginners</category>
      <category>api</category>
      <category>programming</category>
      <category>csharp</category>
    </item>
    <item>
      <title>What is fallback font?</title>
      <dc:creator>Alexandra Grazhevskaja</dc:creator>
      <pubDate>Thu, 31 Oct 2019 12:59:39 +0000</pubDate>
      <link>https://dev.to/aspose_slides/what-is-fallback-font-1b74</link>
      <guid>https://dev.to/aspose_slides/what-is-fallback-font-1b74</guid>
      <description>&lt;p&gt;I am exploring what fallback font is, working under an article about &lt;strong&gt;&lt;a href="https://products.aspose.com/slides?utm_source=https://dev.to/aspose_slides/what-is-fallback-font-1b74&amp;amp;utm_medium=email"&gt;Aspose.Slides&lt;/a&gt;&lt;/strong&gt; product. I am curious to know how would someone explain what is fallback font, &lt;strong&gt;like I am five&lt;/strong&gt;!😀🤔&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Please, explain me in comments!&lt;/strong&gt;👇&lt;/p&gt;

</description>
      <category>explainlikeimfive</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Convert anything to anything</title>
      <dc:creator>Alexandra Grazhevskaja</dc:creator>
      <pubDate>Thu, 31 Oct 2019 10:02:51 +0000</pubDate>
      <link>https://dev.to/aspose_slides/convert-anything-to-anything-9d3</link>
      <guid>https://dev.to/aspose_slides/convert-anything-to-anything-9d3</guid>
      <description>&lt;p&gt;When someone is asking: "Which tool I can use to convert something to something", there is always someone else answering: "Aspose Aspose Aspose"! 😁👍👏&lt;/p&gt;


&lt;div class="ltag__stackexchange--container"&gt;
  &lt;div class="ltag__stackexchange--title-container"&gt;
    
      &lt;div class="ltag__stackexchange--title"&gt;
        &lt;h1&gt;
          &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pTF_nE4a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/stackoverflow-logo-b42691ae545e4810b105ee957979a853a696085e67e43ee14c5699cf3e890fb4.svg" alt=""&gt;
            &lt;a href="https://stackoverflow.com/questions/13458083/converting-excel-powerpoint-pdf-and-word-to-images-in-net-using-aspose/13469410#13469410" rel="noopener noreferrer"&gt;
              &lt;span class="title-flare"&gt;answer&lt;/span&gt; re:  Converting Excel, PowerPoint, PDF, and Word to Images in .NET using Aspose
            &lt;/a&gt;
        &lt;/h1&gt;
        &lt;div class="ltag__stackexchange--post-metadata"&gt;
          &lt;span&gt;Nov 20 '12&lt;/span&gt;
        &lt;/div&gt;
      &lt;/div&gt;
      &lt;a class="ltag__stackexchange--score-container" href="https://stackoverflow.com/questions/13458083/converting-excel-powerpoint-pdf-and-word-to-images-in-net-using-aspose/13469410#13469410" rel="noopener noreferrer"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5MiFESHx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/stackexchange-arrow-up-eff2e2849e67d156181d258e38802c0b57fa011f74164a7f97675ca3b6ab756b.svg" alt=""&gt;
        &lt;div class="ltag__stackexchange--score-number"&gt;
          3
        &lt;/div&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Rk_a5QFN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/stackexchange-arrow-down-4349fac0dd932d284fab7e4dd9846f19a3710558efde0d2dfd05897f3eeb9aba.svg" alt=""&gt;
      &lt;/a&gt;
    
  &lt;/div&gt;
  &lt;div class="ltag__stackexchange--body"&gt;
    
&lt;p&gt;You will need Aspose.Slides, Aspose.Words, Aspose.Cells and Aspose.Pdf or you can use &lt;a href="http://saaspose.com/docs/dashboard.action" rel="nofollow"&gt;Web Api&lt;/a&gt; &lt;/p&gt;

    
  &lt;/div&gt;
  &lt;div class="ltag__stackexchange--btn--container"&gt;
    
      &lt;a href="https://stackoverflow.com/questions/13458083/converting-excel-powerpoint-pdf-and-word-to-images-in-net-using-aspose/13469410#13469410" rel="noopener noreferrer"&gt;Open Full Answer&lt;/a&gt;
    
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Really, there are so many possibilities with &lt;strong&gt;&lt;a href="https://www.aspose.com/?utm_source=https://dev.to/aspose_slides/convert-anything-to-anything-9d3&amp;amp;utm_medium=email"&gt;Aspose products&lt;/a&gt;&lt;/strong&gt;, that soon you will be able to convert anything to anything!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Write in comments ANY file format and I will tell you if Aspose products work with it!&lt;/strong&gt;👇💪&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>Automate presentation speaker notes</title>
      <dc:creator>Alexandra Grazhevskaja</dc:creator>
      <pubDate>Fri, 25 Oct 2019 20:25:30 +0000</pubDate>
      <link>https://dev.to/aspose_slides/automate-presentation-speaker-notes-3dnc</link>
      <guid>https://dev.to/aspose_slides/automate-presentation-speaker-notes-3dnc</guid>
      <description>&lt;p&gt;What are &lt;strong&gt;speaker notes&lt;/strong&gt; actually?💁‍♀️&lt;br&gt;
I like the explanations that they are a &lt;strong&gt;mind map of the presentation&lt;/strong&gt;.👆&lt;/p&gt;

&lt;h3&gt;Speaker notes’ workflow&lt;/h3&gt;

&lt;p&gt;Usually my workflow to prepare speaker notes is the following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;I prepare a separate document with my speech.&lt;/li&gt;
&lt;li&gt;Then I need to sort out the theses from this text as speaker notes.&lt;/li&gt;
&lt;li&gt;I prefer to have them printed in case something goes wrong. And, trust me, when you need to present - something goes wrong more often than you expect. Powerpoint starts to buggy, computer breaks up, meteorites fall...😅&lt;/li&gt;
&lt;li&gt;Then I need to add speaker notes into each slide.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It takes time...🤦‍♀️&lt;/p&gt;

&lt;p&gt;Or I can do vice versa:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Add speaker notes&lt;/strong&gt; one by one into each slide.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Export speaker notes&lt;/strong&gt; into a document and print.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I may also need to give speaker notes to team members, who also work under this presentation. Or share speaker notes with the audience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;i&gt;How do you prepare speaker notes?&lt;i&gt;&lt;/i&gt; Please share in comments.&lt;/i&gt;&lt;/strong&gt;👇&lt;/p&gt;

&lt;h3&gt;Automate speaker notes&lt;/h3&gt;

&lt;p&gt;Being developers, we like to automate everything. So and I was looking for a way to &lt;strong&gt;automatically manage speaker notes&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://products.aspose.com/slides?utm_source=https://dev.to/aspose_slides/automate-presentation-speaker-notes-3dnc&amp;amp;utm_medium=email"&gt;Aspose.Slides API&lt;/a&gt;&lt;/strong&gt; was a good solution for me, as it also allows many other options as: &lt;strong&gt;copy slide notes&lt;/strong&gt; from another presentations; &lt;strong&gt;convert slide notes into HTML&lt;/strong&gt; in case I want to pubish it on the web; and others.&lt;/p&gt;

&lt;p&gt;I will better show you how I &lt;strong&gt;add slide notes&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Create presentation&lt;/span&gt;
&lt;span class="k"&gt;using&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Presentation&lt;/span&gt; &lt;span class="n"&gt;presentation&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;Presentation&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Create slide notes&lt;/span&gt;
    &lt;span class="n"&gt;INotesSlide&lt;/span&gt; &lt;span class="n"&gt;notesSlide&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;presentation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Slides&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;NotesSlideManager&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;AddNotesSlide&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="n"&gt;notesSlide&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;NotesTextFrame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Text&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"This is my very helpful slide note!"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;presentation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ViewProperties&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;NormalViewProperties&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;HorizontalBarState&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;SplitterBarStateType&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Restored&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="n"&gt;presentation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Save&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"pres.pptx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;SaveFormat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Pptx&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Then I may want to &lt;strong&gt;access slide notes for extracting&lt;/strong&gt; them anywhere, or I would &lt;strong&gt;convert slide notes into HTML to publish them&lt;/strong&gt; on web:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight csharp"&gt;&lt;code&gt;    &lt;span class="c1"&gt;// Access slide notes for extracting&lt;/span&gt;
    &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;slide&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;presentation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Slides&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
    &lt;span class="n"&gt;NotesSlideEx&lt;/span&gt; &lt;span class="n"&gt;notes&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;slide&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;NotesSlide&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c1"&gt;// Convert into HTML&lt;/span&gt;
    &lt;span class="n"&gt;HtmlOptions&lt;/span&gt; &lt;span class="n"&gt;opt&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;HtmlOptions&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="n"&gt;INotesCommentsLayoutingOptions&lt;/span&gt; &lt;span class="n"&gt;options&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;opt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;NotesCommentsLayouting&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;NotesPosition&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;NotesPositions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BottomFull&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;presentation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Save&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"output.html"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;SaveFormat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Html&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;opt&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Easy!👌&lt;/p&gt;

&lt;p&gt;It’s also possible to use Aspose.Slides from Java, C++ or other languages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;i&gt;How do you automate working with speaker notes? What would you like to automate here?&lt;i&gt;&lt;/i&gt; Please share in comments.&lt;/i&gt;&lt;/strong&gt;👇&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>beginners</category>
      <category>api</category>
      <category>programming</category>
    </item>
    <item>
      <title>Boost your presentations with GIFs</title>
      <dc:creator>Alexandra Grazhevskaja</dc:creator>
      <pubDate>Mon, 30 Sep 2019 08:22:48 +0000</pubDate>
      <link>https://dev.to/aspose_slides/boost-your-presentations-with-gifs-2d73</link>
      <guid>https://dev.to/aspose_slides/boost-your-presentations-with-gifs-2d73</guid>
      <description>&lt;p&gt;&lt;strong&gt;GIFs popularity led their way into&lt;/strong&gt; many fields, including &lt;strong&gt;presentations&lt;/strong&gt;. Static photos in JPG or PNG format are working fine in presentations, but a GIF can make your presentation little bit more special, interesting and engaging.&lt;br&gt;&lt;br&gt;
Demonstrate processes and data in a way that is easier to understand, but dont forget whether it’s a personal, scientific or business presentation, your &lt;strong&gt;GIFs should complement presentation&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;Tips for using GIFs in presentations&lt;/h3&gt;

&lt;p&gt;I have tried to gather tips on using GIFs in presentations, let us take a look.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do not be afraid&lt;/strong&gt; to use GIFs in presentation.&lt;/p&gt;

&lt;p&gt;Zig Ziglar said: &lt;i&gt;"You don’t have to use humor in your speech unless you want to be invited back."&lt;/i&gt; &lt;br&gt;
For those who struggle with telling funny stories, GIFs can give just the boost to get the audiences laughing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/aIYk6utsesfx6/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img width="500" src="https://i.giphy.com/media/aIYk6utsesfx6/giphy.gif"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;GIFs should &lt;strong&gt;meet the context&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You must also have solid informational content related to your subject and not only a presentation full of dancing cats. Otherwise:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/3o84Ue0j5fFc8FRSIo/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img width="500" src="https://i.giphy.com/media/3o84Ue0j5fFc8FRSIo/giphy.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GIFs can be great to substitute the mix of images and video, that are perfect to capture the audiences attention. Video take time to watch, while GIF can give an convenient, fast and totally silent way to express something.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use GIFs to &lt;strong&gt;give a break&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;10 minutes is said to be the maximum amount of time people can concentrate on a speech. 
GIFs can be useful to break up the information overload if they are used at appropriate periodicity.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;GIFs are &lt;strong&gt;not for important information&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Researches made in &lt;a href="https://www.eurekalert.org/pub_releases/2009-06/ip-tds061109.php"&gt;University of Wilmington, Carolina&lt;/a&gt; confirmed, that important information represented in presentations statically is easier to remember and require less efforts and concentration from listeners.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Copyright&lt;/strong&gt; law.&lt;/p&gt;

&lt;p&gt;There is no unambiguous law that could clarify if the GIF created from the copyrighted materials is an infringement.&lt;/p&gt;

&lt;p&gt;However, there are some tips to follow: get permissions from the copyright holder, credit the original GIF creator when possible or produce your own GIFs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Use &lt;a href="https://products.aspose.com/slides?utm_source=https://dev.to/aspose_slides/boost-your-presentations-with-gifs-2d73&amp;amp;utm_medium=email"&gt;Aspose.Slides APIs&lt;/a&gt; to boost GIFs usage in presentations&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I am always saying, if you need to automate something - choose only trustful vendor or solution. &lt;strong&gt;In case of anything about presentations - its Aspose.Slides by &lt;a href="https://aspose.com?utm_source=https://dev.to/aspose_slides/boost-your-presentations-with-gifs-2d73&amp;amp;utm_medium=email"&gt;Aspose&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/QZJK4SRd9cz2LI2PsB/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img width="500" src="https://i.giphy.com/media/QZJK4SRd9cz2LI2PsB/giphy.gif"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;Boost GIFs usage in presentations more&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://products.aspose.com/slides?utm_source=https://dev.to/aspose_slides/boost-your-presentations-with-gifs-2d73&amp;amp;utm_medium=email"&gt;Aspose.Slides API&lt;/a&gt;&lt;/strong&gt; is supported for many languages and platforms: .NET, Java, C++, Android, SharePoint, Reporting Services, JasperReports. It is easy to use and thats how I can add a GIF to presentation:&lt;/p&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Open the presentation&lt;/span&gt;
&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;pres&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;Presentation&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;@"companyReport.pptx"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Add new empty slide&lt;/span&gt;
&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;slide&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pres&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Slides&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;AddEmptySlide&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="c1"&gt;// Instantiate the image&lt;/span&gt;
&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;img&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Drawing&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;Bitmap&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"weAreDoingGreat.gif"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;IPPImage&lt;/span&gt; &lt;span class="n"&gt;imgx&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pres&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Images&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;AddImage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Add picture frame to slide shapes&lt;/span&gt;
&lt;span class="n"&gt;IPictureFrame&lt;/span&gt; &lt;span class="n"&gt;pf&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;slide&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Shapes&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;AddPictureFrame&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ShapeType&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Rectangle&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;50&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;150&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;imgx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Width&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;imgx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Height&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;imgx&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;//Save presentation&lt;/span&gt;
&lt;span class="n"&gt;pres&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Save&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;@"companyReport.pptx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;SaveFormat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Pptx&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;There are a lot of &lt;strong&gt;untrivial scenarious&lt;/strong&gt; you might need to implement about GIFs in presentations, except just adding, reading and converting.&lt;br&gt;&lt;br&gt;
I have an opportunity to observe the incoming requests to Aspose.Slides Team from the customers and they are really diverse:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Get Thumbnails and PDFs of every GIF animation step in a slide.&lt;/li&gt;
&lt;li&gt;Insert a linked GIF from the website, which would load while document opening.&lt;/li&gt;
&lt;li&gt;Create GIF from presentation animation.&lt;/li&gt;
&lt;li&gt;Convert presentation or a part of it into animated GIF.&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;i&gt;&lt;strong&gt;Have you ever used GIFs in presentations and what are your own rules?&lt;/strong&gt;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;&lt;i&gt;&lt;strong&gt;What was your experience to automate presentation processes?&lt;/strong&gt;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;&lt;i&gt;&lt;strong&gt;Please, share in comments!&lt;/strong&gt;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;😊&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>beginners</category>
      <category>api</category>
      <category>programming</category>
    </item>
    <item>
      <title>Aspose APIs save you from MS Office Automation hell</title>
      <dc:creator>Alexandra Grazhevskaja</dc:creator>
      <pubDate>Tue, 23 Jul 2019 10:29:23 +0000</pubDate>
      <link>https://dev.to/aspose_slides/aspose-apis-save-you-from-ms-office-automation-hell-59dh</link>
      <guid>https://dev.to/aspose_slides/aspose-apis-save-you-from-ms-office-automation-hell-59dh</guid>
      <description>&lt;h2&gt;Intro&lt;/h2&gt;

&lt;p&gt;Sometimes there is a need to automate the process of handling MS Office file formats. For example, the data volume you need to represent is too large to process it manually. Or you might need to use complicated animations, web content or execute other untrivial scenarios on your data. Or you just don’t like to use your hands.😊 &lt;/p&gt;

&lt;p&gt;For such purpose, in .NET you can go two ways: using native Microsoft libraries or the third-party solution like &lt;strong&gt;&lt;a href="https://www.aspose.com/?utm_source=https://dev.to/aspose_slides/aspose-apis-save-you-from-ms-office-automation-hell-59dh&amp;amp;utm_medium=email"&gt;Aspose product family&lt;/a&gt;&lt;a&gt;&lt;/a&gt;&lt;/strong&gt;.
It would sound logic to use the native MS solution, but things are not that smooth here. Let us see why.
&lt;/p&gt;




&lt;h2&gt;Why not Office Automation&lt;/h2&gt;

&lt;h4&gt;MS Office required&lt;/h4&gt;

&lt;p&gt;Microsoft provides Office Automation technology that allows you to interact with Office as COM objects. To use it you need to install Microsoft Office on your computer, and include Microsoft.Office.Interop library into your project.&lt;/p&gt;

&lt;h4&gt;Not server-side&lt;/h4&gt;

&lt;p&gt;Another problem of using Office Automation technology comes from the architectural design of the Office. It wasn’t meant to meet the needs of server-side components that are designed to run unattended. Microsoft.Office.Interop shows an unstable behaviour, throwing unexpectable exceptions that you cannot handle in a proper way, because of their unclear description (as “The RPC server is unavailable”). Sometimes, the library produces client intended alerts (like “Document is protected”) making the application process restart. And you cannot do anything with that, because you cannot access those alerts via COM. 
&lt;/p&gt;

&lt;h4&gt;Memory leaks&lt;/h4&gt;

&lt;p&gt;Microsoft.Office.Interop is based on COM Interop technology, and the usage of it from the managed code often causes serious problems as memory leak. You have to take care of the COM object’s lifecycle, because sometimes your Office Application process may not exit even after you’ve shut down.
&lt;/p&gt;

&lt;h4&gt;Deployment problems&lt;/h4&gt;

&lt;p&gt;The deployment is problematic, because using the Interop assemblies make you hardly tied on the Office version of your client’s machine.&lt;/p&gt;

&lt;h4&gt;Development problems&lt;/h4&gt;

&lt;p&gt;Among others, while working with Microsoft.Office.Interop library, you are forced to think in a low level terms. Problems with scalability and security make it impossible to use the technology in the enterprise level solutions.&lt;/p&gt;

&lt;h3&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;It becomes too much challenging to solve all the troubles you meet while using Office Automate, that’s why &lt;strong&gt;even &lt;a href="https://support.microsoft.com/en-gb/help/257757/considerations-for-server-side-automation-of-office" rel="noopener noreferrer"&gt;Microsoft do not suggest&lt;/a&gt; to use it, and advices to give the priority to the third party libraries&lt;/strong&gt;. Moreover, Microsoft do not maintain the technology and its documentation since 2015 nomore.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcatmacros.files.wordpress.com%2F2009%2F07%2Fcat-halp-1-1.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcatmacros.files.wordpress.com%2F2009%2F07%2Fcat-halp-1-1.jpg"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;


&lt;h2&gt;Why Aspose products&lt;/h2&gt;

&lt;p&gt;Aspose APIs are the set of libraries to process all the MS Office file formats. You can work with word, powerpoint, excel, notes, visio, outlook and other formats. The libraries allow to manage the texts, images, shapes, tables, animations, audio and video, emails, watermarks, hyperlinks in your files. Every API has the  powerful security instruments to protect your documents.&lt;/p&gt;

&lt;h4&gt;No MS Office required&lt;/h4&gt;

&lt;p&gt;Many of the benefits of using Aspose APIs come from the fact that it’s a third party solution, that do not use Office Automate technology under the cover. You don’t need MS Office to be installed on the computer; its compatible with other .NET applications and you can forget about deployment problems.&lt;/p&gt;

&lt;h4&gt;Not only MS Office file formats&lt;/h4&gt;

&lt;p&gt;Aspose APIs support all the latest versions of file formats. It is possible to create and modify files or separate pages, export and convert them into plenty of MS Office and non-MS Office formats.&lt;/p&gt;

&lt;h4&gt;High-level object model&lt;/h4&gt;

&lt;p&gt;Aspose libraries represents the high-level object model for managing documents and their elements, you dont need to take care of the low level MS Office mechanisms. Just think in terms of documents, pages, texts and shapes - dont worry of managing streams, object lifecycles and others.&lt;/p&gt;

&lt;h4&gt;Compatible with any type of OS, .NET application&lt;/h4&gt;

&lt;p&gt;You can easily build your system, that uses the library on any 32-bit or 64-bit system and in any type of .NET application: C#, ASP.NET, WinForms, Xamarin, etc.&lt;/p&gt;

&lt;h4&gt;Quality guarantee&lt;/h4&gt;

&lt;p&gt;Aspose has been one of the first vendors on the market, who started to provide the file formats processing APIs long time ago. You can be sure - they know everyting about file formats and their solutions have been proved with the time.&lt;/p&gt;

&lt;p&gt;Being the commercial solution, every Aspose product is proven with a guarantees of stability, maintenance, security and support.
On Aspose site you can find a detailed guide for .NET with a lot of code samples. You can easily contact the support team to get a quick help.&lt;/p&gt;

&lt;h3&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;When it comes to automate MS Office file formats processing, there is nothing better than using third-party products like Aspose APIs.
The Aspose APIs are the high-quality products created by the principle: &lt;strong&gt;"Developers for developers"&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>csharp</category>
      <category>office</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
