Exception when saving pdf on Android

Experiencing an exception when attempting to save a PDF document from Aspose.Words on Android. Looks like Aspose.Resources.TableSubstitutionAndroid.xml is missing for some reason.

Code snippet:

        var doc = new Document();
        string path = Path.Combine(Xamarin.Essentials.FileSystem.AppDataDirectory, "temp_report.pdf"); //Throws Exception
        doc.Save(path, SaveFormat.Pdf);

~ Outer Exception ~

System.TypeInitializationException
Message: The type initializer for ‘Aspose.Words.Fonts.FontSettings’ threw an exception.
Source: Aspose.Words
StackTrace: at Aspose.Words.Document. () [0x00008] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at . () [0x00000] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at . (System.String , ) [0x0001a] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at . (System.String , ) [0x00000] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at . (System.String , System.Single , , , System.Boolean , System.Boolean ) [0x00000] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at . (System.String , System.Single , , , System.Boolean ) [0x00000] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at . (System.String , System.Single , ) [0x00000] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at . (Aspose.Words.Font , Aspose.Words.Document ) [0x00019] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at . (Aspose.Words.Node , ) [0x00029] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at . (Aspose.Words.Paragraph ) [0x00066] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at . (Aspose.Words.Node , ) [0x0001d] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at . (Aspose.Words.Tables.Cell ) [0x0001b] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at . (Aspose.Words.Tables.Cell , ) [0x00000] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at . () [0x0006c] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at . () [0x0000f] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at . () [0x00000] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Aspose.Words.Tables.Table. () [0x00007] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at . (Aspose.Words.Tables.Table ) [0x00010] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at . (Aspose.Words.Tables.Table ) [0x00087] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at .VisitTableStart (Aspose.Words.Tables.Table ) [0x0000d] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Aspose.Words.Tables.Table.r3ka8zscesabkstb24kjjv9sml9wq7pw (Aspose.Words.DocumentVisitor ) [0x00000] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Aspose.Words.CompositeNode.AcceptCore (Aspose.Words.DocumentVisitor visitor) [0x00000] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Aspose.Words.Tables.Table.Accept (Aspose.Words.DocumentVisitor visitor) [0x00000] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Aspose.Words.CompositeNode.AcceptChildren (Aspose.Words.DocumentVisitor visitor) [0x00010] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Aspose.Words.CompositeNode.AcceptCore (Aspose.Words.DocumentVisitor visitor) [0x00030] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Aspose.Words.Body.Accept (Aspose.Words.DocumentVisitor visitor) [0x00000] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Aspose.Words.CompositeNode.AcceptChildren (Aspose.Words.DocumentVisitor visitor) [0x00010] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Aspose.Words.CompositeNode.AcceptCore (Aspose.Words.DocumentVisitor visitor) [0x00030] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Aspose.Words.Section.Accept (Aspose.Words.DocumentVisitor visitor) [0x00000] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Aspose.Words.CompositeNode.AcceptChildren (Aspose.Words.DocumentVisitor visitor) [0x00010] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Aspose.Words.CompositeNode.AcceptCore (Aspose.Words.DocumentVisitor visitor) [0x00030] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Aspose.Words.Document.Accept (Aspose.Words.DocumentVisitor visitor) [0x00000] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at . ( ) [0x00100] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at . () [0x00051] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Aspose.Words.Document.UpdatePageLayout () [0x0004d] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Aspose.Words.Document. (System.Boolean ) [0x0000d] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Aspose.Words.Document. () [0x00000] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Aspose.Words.Document.get_PageCount () [0x00000] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at . ( , ) [0x0002d] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at . ( ) [0x0006c] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at . ( ) [0x0001c] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Aspose.Words.Document. ( , Aspose.Words.Saving.SaveOptions ) [0x0006d] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Aspose.Words.Document. (System.IO.Stream , System.String , Aspose.Words.Saving.SaveOptions ) [0x000ae] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Aspose.Words.Document.Save (System.String fileName, Aspose.Words.Saving.SaveOptions saveOptions) [0x0001b] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Aspose.Words.Document.Save (System.String fileName, Aspose.Words.SaveFormat saveFormat) [0x00008] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Company.AppName.Services.PdfGenerator.GetSecurityPdf (System.String friendlyName, System.String model, System.String serialNumber, System.String firmwareVersion, System.Collections.Generic.IEnumerable1[T] allResults, System.Boolean includeWhitepaper) [0x00a9e] in /Users/sherlock/dev/Company/Xamarin/Company.AppName/Services/PdfGenerator.cs:270 at Company.AppName.ViewModels.SecurityAssessment.&lt;RegisterObservables&gt;b__88_30 () [0x00026] in /Users/sherlock/dev/Company/Xamarin/Company.AppName/ViewModels/SecurityAssessment.cs:323 at System.Threading.Tasks.Task1[TResult].InnerInvoke () [0x0000f] in <58604b4522f748968296166e317b04b4>:0
at System.Threading.Tasks.Task.Execute () [0x00000] in <58604b4522f748968296166e317b04b4>:0

~ Inner Exception ~

System.InvalidOperationException
Message: Cannot find resource ‘Aspose.Resources.TableSubstitutionAndroid.xml’.
Source: Aspose.Words
StackTrace: at . (System.String , System.Type ) [0x00020] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at . (System.String ) [0x00000] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at . () [0x0000a] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Aspose.Words.Fonts.TableSubstitutionRule.LoadAndroidSettings () [0x00000] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Aspose.Words.Fonts.TableSubstitutionRule…ctor (System.Object ) [0x0001c] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Aspose.Words.Fonts.FontSubstitutionSettings…ctor (System.Object ) [0x00006] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Aspose.Words.Fonts.FontSettings…ctor () [0x00023] in <30df7352dfcf46c04c6ed8a7d2104c67>:0
at Aspose.Words.Fonts.FontSettings…cctor () [0x00000] in <30df7352dfcf46c04c6ed8a7d2104c67>:0

@jvanhu1s,

Please check the ‘Xamarin Platform Notes’ and ‘Xamarin.Android Additional Requirements’ sections of the following article:

Xamarin and .NET Standard 2.0 API Differences and Limitations.

Hope, this helps.

A post was split to a new topic: Aspose.Words does not work under Xamarin.Android