Error While Converting a PowerPoint Presentation File in an ARM64 Environment

When we try to convert the attached pptx file using ARM64 environment, the error occurs.

image.png (106.2 KB)

08I23-11 - 03 - 08I23-11, Activación, Bloqueo y Desbloqueo de Cuentas de Ahorros.zip (3.2 MB)

@everaldo

:pushpin: Summary

You are seeing an exception when converting a PPTX file on an ARM64 machine.
To pinpoint the cause we need a bit more information, but the most common reasons are:

Possible cause What to check / do
Older Aspose.Slides version – ARM‑64 native binaries were added in recent releases. Upgrade to the latest Aspose.Slides for .NET (e.g., 24.8 or newer).
Mismatched runtime – Using a x86/x64 build of the library on an ARM64 OS. Make sure the project targets net6.0/7.0/8.0 (or .NET Core 3.1+) and the reference is the ARM64 NuGet package.
Missing native libraries – The native Aspose.Slides DLLs are not being copied to the output folder. Verify that the runtimes\linux-arm64\native\ (or runtimes\win-arm64\native\) folder is present next to your executable.
File‑specific issue – The attached PPTX may contain elements that trigger a bug on ARM64. Test with a simple PPTX (e.g., a one‑slide file) to see if the problem persists.

:hammer_and_wrench: How to troubleshoot step‑by‑step

  1. Provide the exact exception

    • Copy the full stack‑trace from the console / log file and paste it here.
    • Include the inner exception if there is one.
  2. Share the code snippet you use for conversion, e.g.:

    // Example conversion code
    using Aspose.Slides;
    using System.IO;
    
    var presentation = new Presentation("input.pptx");
    presentation.Save("output.pdf", SaveFormat.Pdf);
    

    If you are using a different format (e.g., PNG, HTML) let us know.

  3. Environment details

    Item Example
    OS Ubuntu 22.04 (ARM64) / Windows 11 ARM64
    .NET runtime .NET 8.0 SDK 8.0.100
    Aspose.Slides version 24.6.0
    Processor Apple M1 / Azure A‑Series / Raspberry Pi 4 (ARM64)
    Build configuration Release / Debug
  4. Check the deployed native DLLs

    After building, the output folder should contain something like:

    /runtimes/linux-arm64/native/libAspose.Slides.dll
    /runtimes/win-arm64/native/Aspose.Slides.dll
    

    If they are missing, clean the solution and restore NuGet packages again:

    dotnet clean
    dotnet restore
    dotnet build -c Release
    
  5. Test with a minimal file

    Create a new PowerPoint file with a single title slide and try converting it.
    If this works, the original PPTX may contain a feature that triggers a known ARM64 issue (e.g., complex SmartArt, embedded OLE objects). In that case we can investigate a specific bug.


:books: Useful Aspose Documentation

If you can provide the items listed in steps 1‑3, we’ll be able to reproduce the issue and give you a precise fix or a workaround.


Looking forward to your reply!

Best regards,
Aspose Support Team

@everaldo,
Thank you for contacting free support. We are sorry that you encountered this problem. We need more details to investigate the case. Please share the following additional information:

  • The code example to reproduce the error
  • The OS version on which the code was executed
  • The .NET target platform in your application project
  • The Aspose.Slides version you are using

Please also note:
System Requirements|Aspose.Slides Documentation

The code example to reproduce the error:

public override void Convert()
{
   using (Presentation presentation = new Presentation(OriginalFilePath))
   {
       if (ConversionConfiguration.DocVariables != null 
&& ConversionConfiguration.DocVariables.Count > 0 
&& ConversionConfiguration.EnabledUpdatePdfConversionMetadata.GetValueOrDefault(false) 
&& !string.IsNullOrEmpty(ConversionConfiguration.InitialDelimiterMetadata) 
&& !string.IsNullOrEmpty(ConversionConfiguration.FinalDelimiterMetadata) 
&& !ConversionConfiguration.OnlyUpdateDocVariable)

     {    Encoding encoding;
           if (!string.IsNullOrEmpty(ConversionConfiguration.Encoding))
               encoding = Encoding.GetEncoding(ConversionConfiguration.Encoding);
           else
               encoding = Encoding.GetEncoding("ISO-8859-1");

           Dictionary<string, (string value, List<string> imageNames)> variables =
               Utils.DecodeDocVariables(encoding, ConversionConfiguration.DocVariables);

           UpdateDocVariablesWithReplace(
               presentation,
               variables,
               ConversionConfiguration.InitialDelimiterMetadata,
               ConversionConfiguration.FinalDelimiterMetadata
           );
       }

       PdfOptions options = new PdfOptions();
       if (ConversionConfiguration.IsPDFA)
           options.Compliance = PdfCompliance.PdfA1a;

       ConvertedFilePath = Path.ChangeExtension(OriginalFilePath, "pdf");
       presentation.Save(ConvertedFilePath, SaveFormat.Pdf, options);
   }
}

The exception is thrown as soon as we try to load the .ppt file at: new Presentation(OriginalFilePath)
The exception message is obfuscated, which does not provide any meaningful information or clue about the actual root cause of the failure.

The type initializer for ‘’ threw an exception. - at .(Presentation , Stream , InterruptionToken )
at Aspose.Slides.Presentation.(Stream , Boolean )
at Aspose.Slides.Presentation.(Stream , Boolean )
at Aspose.Slides.Presentation.(String , Boolean )
at Aspose.Slides.Presentation…ctor(String file, LoadOptions loadOptions)
at Aspose.Slides.Presentation…ctor(String file)
at ConverterLib.Converters.PowerPointConverter.Convert() in /src/ConverterLib/Converters/PowerPointConverter.cs:line 17
at SEPDFConverter.Service.ConverterService.Convert() in /src/SEPDFConverter/Service/ConverterService.cs:line 160

new Presentation(OriginalFilePath)

The OS version on which the code was executed:

Running in AWS Graviton ARM64 environment inside Docker.

The .NET target platform in your application project:

<TargetFramework>net9.0</TargetFramework>

The Aspose.Slides version you are using
25.9.0

@everaldo,
Thank you for the details. Unfortunately, I was unable to reproduce the error you described.

Code example:

using (Presentation presentation = new Presentation("08I23.pptx"))
{
    PdfOptions options = new PdfOptions();
    options.Compliance = PdfCompliance.PdfA1a;

    presentation.Save("output.pdf", SaveFormat.Pdf, options);
}

Dockerfile:

FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build

WORKDIR /src
COPY *.csproj ./
RUN dotnet restore
COPY . .
RUN dotnet publish -c Release -o /app --no-restore

FROM public.ecr.aws/amazonlinux/amazonlinux:2023.7.20250428.1

RUN dnf -y update \
 && dnf -y install fontconfig freetype libicu ca-certificates tar gzip findutils \
 && dnf clean all

RUN curl -fsSL https://dot.net/v1/dotnet-install.sh -o /tmp/dotnet-install.sh \
 && chmod +x /tmp/dotnet-install.sh \
 && /tmp/dotnet-install.sh --channel 9.0 --install-dir /usr/share/dotnet --runtime dotnet \
 && ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet

WORKDIR /app
COPY --from=build /app ./

ENTRYPOINT ["dotnet", "NetcoreApp.dll"]

.NET version: 9.0
Aspose.Slides version: Aspose.Slides.NET6.CrossPlatform 25.9.0

I hope this will help you. If the issue persists, please share the simplest project with the Dockerfile to reproduce the error on our end.

Did you test with the file “08I23-11 - 03 - 08I23-11, Activación, Bloqueo y Desbloqueo de Cuentas de Ahorros.pptx” attached?

@everaldo,
Yes, I used the presentation file you shared above.