Dependencies to System.Drawing.Printing.PrinterSettings removed

We have been using an older version of Aspose, but now we upgraded to latest version
We used a code like below before

System.Drawing.Printing.PrinterSettings printerSettings;
System.Drawing.Printing.PageSettings pageSettings:

  using (var printDialog = new System.Windows.Forms.PrintDialog())
  {
    if (printDialog.ShowDialog() != DialogResult.OK)
    {
      printerSettings = null;
      pageSettings = null;
      return false;
    }

    printerSettings = printDialog.PrinterSettings;
    pageSettings = printerSettings.DefaultPageSettings;
  }

And used printerSettings and pageSettings as parameters to PrintDocumentWithSettings(pageSettings, printerSettings), but this doesn’t work anymore, so how to convert System.Drawing.Printing.PrinterSettings to Aspose.Pdf.Printing.Printing.PrinterSettings and the same with pageSettings, or is there another solutions.
We are using our own extented Nuget packets for Aspose, so it’s not just to change our endpoint to accept Aspose.Pdf.Printing.Printing.PrinterSettings, it has to be some kind of converting in the Nuget packet.

We/I have Licenses for Aspose, but I don’t know the username and password

@Kurt1960

Please check this reply in other forum thread where complete information is given about this change. Also, please note that we are in process of updating the documentation as well and soon this information will be available for everyone.

Hi, it doesn’t work, the page says
Oops! That page is private.

@Kurt1960

System.Drawing.Printing.PrinterSettings was replaced with Aspose.Pdf.Printing.PrinterSettings starting from Aspose.PDF 23.10. This is made to support printing under Linux as well as under Windows.

public static void PrintingPDFFile()
{
    // Create PdfViewer object
    PdfViewer viewer = new PdfViewer();

    // Open input PDF file
    viewer.BindPdf(_dataDir + "sample.pdf");

    // Set attributes for printing
    viewer.AutoResize = true;         // Print the file with adjusted size
    viewer.AutoRotate = true;         // Print the file with adjusted rotation
    viewer.PrintPageDialog = false;   // Do not produce the page number dialog when printing

    // Create objects for printer and page settings and PrintDocument
    Aspose.Pdf.Printing.PrinterSettings ps = new Aspose.Pdf.Printing.PrinterSettings();
    Aspose.Pdf.Printing.PageSettings pgs = new Aspose.Pdf.Printing.PageSettings();
    System.Drawing.Printing.PrintDocument prtdoc = new System.Drawing.Printing.PrintDocument();

    // Set printer name
    ps.PrinterName = prtdoc.PrinterSettings.PrinterName;

    // Set PageSize (if required)
    pgs.PaperSize = new Aspose.Pdf.Printing.PaperSize("A4", 827, 1169);

    // Set PageMargins (if required)
    pgs.Margins = new Aspose.Pdf.Devices.Margins(0, 0, 0, 0);

    // Print document using printer and page settings
    viewer.PrintDocumentWithSettings(pgs, ps);

    // Close the PDF file after printing
    viewer.Close();
}
public static void PrintingPDFDisplayPrintDialog()
{
    // Create PdfViewer object
    PdfViewer viewer = new PdfViewer();

    // Open input PDF file
    viewer.BindPdf(_dataDir + "sample.pdf");

    // Set attributes for printing
    viewer.AutoResize = true;         // Print the file with adjusted size
    viewer.AutoRotate = true;         // Print the file with adjusted rotation

    // Create objects for printer and page settings and PrintDocument

    Aspose.Pdf.Printing.PageSettings pgs = new Aspose.Pdf.Printing.PageSettings
    {

        // Set PageSize (if required)
        PaperSize = new Aspose.Pdf.Printing.PaperSize("A4", 827, 1169),

        // Set PageMargins (if required)
        Margins = new Aspose.Pdf.Devices.Margins(0, 0, 0, 0)
    };

    System.Windows.Forms.PrintDialog printDialog = new System.Windows.Forms.PrintDialog();
    if (printDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
        // Document printing code goes here
        // Print document using printer and page settings
        Aspose.Pdf.Printing.PrinterSettings ps = printDialog.PrinterSettings;
        viewer.PrintDocumentWithSettings(pgs, ps);
    }

    // Close the PDF file after priting
    viewer.Close();
}

Note: PrintDialog isn’t available in the NET Core Version 3.1 and later. Can it be invoked from Application.Current.Dispatcher.CurrentThread ? Check this.

public static void PrintingPDFToSoftPrinter()
{
    // Create PdfViewer object
    PdfViewer viewer = new PdfViewer();

    // Open input PDF file
    viewer.BindPdf(_dataDir + "sample.pdf");

    // Set attributes for printing
    viewer.AutoResize = true;         // Print the file with adjusted size
    viewer.AutoRotate = true;         // Print the file with adjusted rotation
    viewer.PrintPageDialog = false;   // Do not produce the page number dialog when printing

    viewer.PrintAsImage = false;

    // Create objects for printer and page settings and PrintDocument
    Aspose.Pdf.Printing.PrinterSettings ps = new Aspose.Pdf.Printing.PrinterSettings();
    Aspose.Pdf.Printing.PageSettings pgs = new Aspose.Pdf.Printing.PageSettings();

    // Set printer name
    //ps.PrinterName = "HP Universal Printing PS (v7.0.0)";
    // Or set the PDF printer
    ps.PrinterName = "Adobe PDF";

    // Set PageSize (if required)
    pgs.PaperSize = new Aspose.Pdf.Printing.PaperSize("A4", 827, 1169);

    // Set PageMargins (if required)
    pgs.Margins = new Aspose.Pdf.Devices.Margins(0, 0, 0, 0);

    // Print document using printer and page settings
    viewer.PrintDocumentWithSettings(pgs, ps);

    // Close the PDF file after priting
    viewer.Close();
}
public static void PrintingPDFHidePrintDialog()
{
    // Create PdfViewer object
    PdfViewer viewer = new PdfViewer();

    // Open input PDF file
    viewer.BindPdf(_dataDir + "sample.pdf");

    // Set attributes for printing
    viewer.AutoResize = true;         // Print the file with adjusted size
    viewer.AutoRotate = true;         // Print the file with adjusted rotation


    viewer.PrintPageDialog = false;   // Do not produce the page number dialog when printing

    // Create objects for printer and page settings and PrintDocument
    Aspose.Pdf.Printing.PrinterSettings ps = new Aspose.Pdf.Printing.PrinterSettings();
    Aspose.Pdf.Printing.PageSettings pgs = new Aspose.Pdf.Printing.PageSettings();

    // Set XPS/PDF printer name
    ps.PrinterName = "OneNote for Windows 10";

    // Set PageSize (if required)
    pgs.PaperSize = new Aspose.Pdf.Printing.PaperSize("A4", 827, 1169);

    // Set PageMargins (if required)
    pgs.Margins = new Aspose.Pdf.Devices.Margins(0, 0, 0, 0);

    // Print document using printer and page settings
    viewer.PrintDocumentWithSettings(pgs, ps);

    // Close the PDF file after priting
    viewer.Close();
}
public static void PrintingPDFasGrayscale()
{
    // Create PdfViewer object
    PdfViewer viewer = new PdfViewer();

    // Open input PDF file
    viewer.BindPdf(_dataDir + "sample.pdf");

    // Set attributes for printing
    viewer.AutoResize = true;         // Print the file with adjusted size
    viewer.AutoRotate = true;         // Print the file with adjusted rotation


    viewer.PrintPageDialog = false;   // Do not produce the page number dialog when printing
    viewer.PrintAsGrayscale = false;

    // Create objects for printer and page settings and PrintDocument
    Aspose.Pdf.Printing.PrinterSettings ps = new Aspose.Pdf.Printing.PrinterSettings();
    Aspose.Pdf.Printing.PageSettings pgs = new Aspose.Pdf.Printing.PageSettings();

    // Set XPS/PDF printer name
    ps.PrinterName = "OneNote for Windows 10";

    // Set PageSize (if required)
    pgs.PaperSize = new Aspose.Pdf.Printing.PaperSize("A4", 827, 1169);

    // Set PageMargins (if required)
    pgs.Margins = new Aspose.Pdf.Devices.Margins(0, 0, 0, 0);

    // Print document using printer and page settings
    viewer.PrintDocumentWithSettings(pgs, ps);

    // Close the PDF file after priting
    viewer.Close();
}
public static void CheckingPrintJobStatus()
{
    // Create PdfViewer object
    PdfViewer viewer = new PdfViewer();

    // Open input PDF file
    viewer.BindPdf(_dataDir + "sample1.pdf");

    // Set attributes for printing
    viewer.AutoResize = true;         // Print the file with adjusted size
    viewer.AutoRotate = true;         // Print the file with adjusted rotation
    viewer.PrintPageDialog = false;   // Do not produce the page number dialog when printing

    viewer.PrintAsImage = false;

    // Create objects for printer and page settings and PrintDocument
    Aspose.Pdf.Printing.PrinterSettings ps = new Aspose.Pdf.Printing.PrinterSettings();
    Aspose.Pdf.Printing.PageSettings pgs = new Aspose.Pdf.Printing.PageSettings();

    // Set XPS/PDF printer name
    ps.PrinterName = "HP Universal Printing PS (v7.0.0)";
    // Set output file name and PrintToFile attribute
    ps.PrintFileName = _dataDir + "PdfToPostScript_out.ps";
    ps.PrintToFile = true;

    // Set PageSize (if required)
    pgs.PaperSize = new Aspose.Pdf.Printing.PaperSize("A4", 827, 1169);

    // Set PageMargins (if required)
    pgs.Margins = new Aspose.Pdf.Devices.Margins(0, 0, 0, 0);

    // Print document using printer and page settings
    viewer.PrintDocumentWithSettings(pgs, ps);

    // Check the print status
    if (viewer.PrintStatus != null && viewer.PrintStatus is Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
    else
    {
        // No errors were found. Printing job has been completed successfully
        Console.WriteLine("Printing completed without any issue..");
    }

    // Close the PDF file after printing
    viewer.Close();
}
struct PrintingJobSettings
{
    public int ToPage { get; set; }
    public int FromPage { get; set; }
    public string OutputFile { get; set; }
    public Aspose.Pdf.Printing.Duplex Mode { get; set; }
}

public static void PrintingPagesInSimplexAndDuplexMode()
{
    int printingJobIndex = 0;
    string inPdf = _dataDir + "sample-8page.pdf";
    string output = _dataDir;
    IList<PrintingJobSettings> printingJobs = new List<PrintingJobSettings>();

    PrintingJobSettings printingJob1 = new PrintingJobSettings
    {
        FromPage = 1,
        ToPage = 3,
        OutputFile = output + "sample_1_3.xps",
        Mode = Aspose.Pdf.Printing.Duplex.Default
    };

    printingJobs.Add(printingJob1);

    PrintingJobSettings printingJob2 = new PrintingJobSettings
    {
        FromPage = 4,
        ToPage = 6,
        OutputFile = output + "sample_4_6.xps",
        Mode = Aspose.Pdf.Printing.Duplex.Simplex
    };

    printingJobs.Add(printingJob2);

    PrintingJobSettings printingJob3 = new PrintingJobSettings
    {
        FromPage = 7,
        ToPage = 7,
        OutputFile = output + "sample_7.xps",
        Mode = Aspose.Pdf.Printing.Duplex.Default
    };

    printingJobs.Add(printingJob3);

    PdfViewer viewer = new PdfViewer();

    viewer.BindPdf(inPdf);
    viewer.AutoResize = true;
    viewer.AutoRotate = true;
    viewer.PrintPageDialog = false;

    Aspose.Pdf.Printing.PrinterSettings ps = new Aspose.Pdf.Printing.PrinterSettings();
    Aspose.Pdf.Printing.PageSettings pgs = new Aspose.Pdf.Printing.PageSettings();

    ps.PrinterName = "Microsoft XPS Document Writer";
    ps.PrintFileName = System.IO.Path.GetFullPath(printingJobs[printingJobIndex].OutputFile);
    ps.PrintToFile = true;
    ps.FromPage = printingJobs[printingJobIndex].FromPage;
    ps.ToPage = printingJobs[printingJobIndex].ToPage;



    ps.Duplex = printingJobs[printingJobIndex].Mode;
    ps.PrintRange = Aspose.Pdf.Printing.PrintRange.SomePages;

    pgs.PaperSize = new Aspose.Pdf.Printing.PaperSize("A4", 827, 1169);
    ps.DefaultPageSettings.PaperSize = pgs.PaperSize;
    pgs.Margins = new Aspose.Pdf.Devices.Margins(0, 0, 0, 0);

    viewer.EndPrint += (sender, args) =>
    {
        if (++printingJobIndex < printingJobs.Count)
        {
            ps.PrintFileName = System.IO.Path.GetFullPath(printingJobs[printingJobIndex].OutputFile);
            ps.FromPage = printingJobs[printingJobIndex].FromPage;
            ps.ToPage = printingJobs[printingJobIndex].ToPage;
            ps.Duplex = printingJobs[printingJobIndex].Mode;
            viewer.PrintDocumentWithSettings(pgs, ps);
        }
    };

    viewer.PrintDocumentWithSettings(pgs, ps);
}

You can please use latest version of Aspose.Pdf.Drawing in .NET 6.0/7.0 environment. Please let us know if using the latest version does not resolve your issue.

Thanks for answer, but I can’t see how these examples can help me.

I need to find a way to convert all the chosen properties from the system drawing printdialog, ex. printername, tray, how many copies, papersize, print on both sites etc. (I don’t know how many there are)

I kind of hope you had made a tool/function for this or know what properties need to be converted

@Kurt1960

Would you kindly share the complete code snippet which you are using in older Aspose.PDF version? We will try to convert it w.r.t. latest version and share with you.

public class UdskriftsstyringViewModel : UnikScreen, IUdskriftsstyringViewModel
{

    public async Task Print()
    {
        ....
        if (!PrinterPrompt(out var printerSettings, out var pageSettings)) 
	  return;
	
        await UdskrivCapPrintAsync(valgteCapPrintAfsendelser, printerSettings, pageSettings).ConfigureAwait(false);

    }

    private async Task UdskrivCapPrintAsync(IEnumerable<ICapAfsendelseViewModel> valgteAfsendelser,
      PrinterSettings printerSettings,
      PageSettings pageSettings)
    {
      await _CapAfsendelsePrinter.UdskrivAsync(valgteAfsendelser, printerSettings, pageSettings).ConfigureAwait(false);
    }

    private bool PrinterPrompt(out System.Drawing.Printing.PrinterSettings printerSettings, out System.Drawing.Printing.PageSettings pageSettings)
    {
      using (var printDialog = _PrinterDialogFunc())
      {
        if (printDialog.ShowDialog() != DialogResult.OK)
        {
          printerSettings = null;
          pageSettings = null;
          return false;
        }

        printerSettings = printDialog.PrinterSettings;
        pageSettings = printerSettings.DefaultPageSettings;
        return true;
      }
    }
}

  using System.Collections.Generic;
  using System.Drawing.Printing;
  using System.IO;
  using System.Linq;
  using System.Threading.Tasks;
  using Unik.Converters.Printing;
  using Usd.EA.Desktop.Shared.Services;
  using Usd.EA.Destinationshaandtering.Application.Interfaces.Model.Cap;
  using Usd.EA.Destinationshaandtering.Application.Interfaces.Model.EboksAfsendelse;
  using Usd.EA.Destinationshaandtering.Application.Interfaces.Model.Materiale;
  using Usd.EA.Destinationshaandtering.Application.Interfaces.WebApiClients;
  using Usd.Utilities.Extentions;

  public class CapAfsendelsePrinter : ICapAfsendelsePrinter
  {
    private readonly ICapAfsendelseWebApiClient _CapAfsendelseWebApiClient;
    private readonly IMaterialeWebApiClient _MaterialeWebApiClient;
    private readonly IPdfPrinter _PdfPrinter;

    public CapAfsendelsePrinter(IPdfPrinter pdfPrinter, ICapAfsendelseWebApiClient capAfsendelseWebApiClient, 
      IMaterialeWebApiClient materialeWebApiClient)
    {
      _PdfPrinter = pdfPrinter;
      _CapAfsendelseWebApiClient = capAfsendelseWebApiClient;
      _MaterialeWebApiClient = materialeWebApiClient;
    }

    public async Task UdskrivAsync(IEnumerable<ICapAfsendelseViewModel> valgteAfsendelser, PrinterSettings printerSettings, PageSettings pageSettings)
    {
      var pdfEditor = new PdfEditor();
      foreach (var afsendelse in valgteAfsendelser)
      {
        var afsendelseMedData = await _CapAfsendelseWebApiClient.HentCapAfsendelseAsync(afsendelse.AfsendelseDto.Id).ConfigureAwait(false);
        var materialer = (await Task.WhenAll(afsendelseMedData.MaterialeTilknytninger.Select(x => _MaterialeWebApiClient.HentMaterialeAsync(x.MaterialeId))).ConfigureAwait(false))
          .OrderBy(x => afsendelseMedData.MaterialeTilknytninger.FindIndex(y => y.MaterialeId == x.Id)).ToArray();

        using (var stream = new MemoryStream())
        {
          if (afsendelseMedData.Content.Attachments.Any() || materialer.Any())
            SammensaetHovedDokumentOgBilag(afsendelseMedData, materialer, pdfEditor, stream);
          else
            await stream.WriteAsync(afsendelseMedData.Content.Primary.Data, 0, afsendelseMedData.Content.Primary.Data.Length).ConfigureAwait(false);

          _PdfPrinter.Print(stream, printerSettings, pageSettings);
        }
      }
    }

namespace Usd.EA.Desktop.Shared.Services
{
  using System.Drawing.Printing;
  using System.IO;
  using Unik.Converters.Printing;

  public class PdfPrinter : IPdfPrinter
  {
    public void Print(Stream stream, PrinterSettings printerSettings, PageSettings pageSettings)
    {
      var pdfViewer = new PdfPrintBuilder(stream)
        .UseSettings()
        .WithPrintSettings(printerSettings)
        .WithPageSettings(pageSettings);

      pdfViewer.Print();
    }
  }
}


This is from our Nuget package (and only this part have references to Aspose)

using System;
using System.Drawing.Printing;
using System.IO;
using Aspose.Pdf.Facades;
using Unik.Converters.Core;

namespace Unik.Converters.Printing
{
    public class PdfPrintBuilder : Base
    {
        public class PdfPrintDefaultBuilder
        {
            private readonly PdfDataSourceBinder _pdfDataSourceBinder;

            internal PdfPrintDefaultBuilder(PdfDataSourceBinder pdfDataSourceBinder)
            {
                if (pdfDataSourceBinder == null)
                {
                    throw new ArgumentNullException("pdfDataSourceBinder");
                }

                _pdfDataSourceBinder = pdfDataSourceBinder;
            }

            public void Print()
            {
                //IL_0000: Unknown result type (might be due to invalid IL or missing references)
                //IL_0006: Expected O, but got Unknown
                PdfViewer val = new PdfViewer();
                try
                {
                    _pdfDataSourceBinder.Bind((IFacade)(object)val);
                    val.set_AutoRotate(true);
                    val.PrintDocument();
                }
                finally
                {
                    ((IDisposable)val)?.Dispose();
                }
            }
        }

        public class PdfPrintSetupBuilder
        {
            private readonly PdfDataSourceBinder _pdfDataSourceBinder;

            internal PdfPrintSetupBuilder(PdfDataSourceBinder pdfDataSourceBinder)
            {
                if (pdfDataSourceBinder == null)
                {
                    throw new ArgumentNullException("pdfDataSourceBinder");
                }

                _pdfDataSourceBinder = pdfDataSourceBinder;
            }

            public void Print()
            {
                //IL_0000: Unknown result type (might be due to invalid IL or missing references)
                //IL_0006: Expected O, but got Unknown
                PdfViewer val = new PdfViewer();
                try
                {
                    _pdfDataSourceBinder.Bind((IFacade)(object)val);
                    val.set_AutoRotate(true);
                    val.PrintDocumentWithSetup();
                }
                finally
                {
                    ((IDisposable)val)?.Dispose();
                }
            }
        }

        public class PdfPrintSettingsBuilder
        {
            private readonly PdfDataSourceBinder _pdfDataSourceBinder;

            private readonly PrinterSettings _printerSettings;

            private readonly PageSettings _pageSettings;

            internal PdfPrintSettingsBuilder(PdfDataSourceBinder pdfDataSourceBinder)
            {
                if (pdfDataSourceBinder == null)
                {
                    throw new ArgumentNullException("pdfDataSourceBinder");
                }

                _pdfDataSourceBinder = pdfDataSourceBinder;
            }

            private PdfPrintSettingsBuilder(PdfDataSourceBinder pdfDataSourceBinder, PrinterSettings printerSettings, PageSettings pageSettings)
            {
                if (pdfDataSourceBinder == null)
                {
                    throw new ArgumentNullException("pdfDataSourceBinder");
                }

                _pdfDataSourceBinder = pdfDataSourceBinder;
                _printerSettings = printerSettings;
                _pageSettings = pageSettings;
            }

            public PdfPrintSettingsBuilder WithPrintSettings(PrinterSettings printerSettings)
            {
                return new PdfPrintSettingsBuilder(_pdfDataSourceBinder, printerSettings, _pageSettings);
            }

            public PdfPrintSettingsBuilder WithPageSettings(PageSettings pageSettings)
            {
                return new PdfPrintSettingsBuilder(_pdfDataSourceBinder, _printerSettings, pageSettings);
            }

            public void Print()
            {
                //IL_0000: Unknown result type (might be due to invalid IL or missing references)
                //IL_0006: Expected O, but got Unknown
                PdfViewer val = new PdfViewer();
                try
                {
                    _pdfDataSourceBinder.Bind((IFacade)(object)val);
                    val.set_AutoRotate(true);
                    if (_printerSettings == null)
                    {
                        val.PrintDocument();
                    }

                    if (_pageSettings == null)
                    {
                        val.PrintDocumentWithSettings(_printerSettings);
                    }

                    val.PrintDocumentWithSettings(_pageSettings, _printerSettings);
                }
                finally
                {
                    ((IDisposable)val)?.Dispose();
                }
            }
        }

        internal class PdfDataSourceBinder
        {
            private enum PrintDataSource
            {
                File,
                Stream
            }

            private readonly Stream _stream;

            private readonly string _filename;

            private readonly PrintDataSource _printDataSource;

            internal PdfDataSourceBinder(string filename)
            {
                if (filename == null)
                {
                    throw new ArgumentNullException("filename");
                }

                _filename = filename;
                _printDataSource = PrintDataSource.File;
            }

            internal PdfDataSourceBinder(Stream stream)
            {
                if (stream == null)
                {
                    throw new ArgumentNullException("stream");
                }

                _stream = stream;
                _printDataSource = PrintDataSource.Stream;
            }

            internal void Bind(IFacade v)
            {
                switch (_printDataSource)
                {
                    case PrintDataSource.File:
                        v.BindPdf(_filename);
                        break;
                    case PrintDataSource.Stream:
                        v.BindPdf(_stream);
                        break;
                    default:
                        throw new NotImplementedException("PrintDataSource " + _printDataSource.ToString() + " is not implemented.");
                }
            }
        }

        private readonly PdfDataSourceBinder _pdfDataSourceBinder;

        private PdfPrintBuilder()
            : base(useWords: false, useCells: false, useDiagram: false, useEmail: false, useImaging: false, usePdf: true, useSlides: false)
        {
        }

        public PdfPrintBuilder(string filename)
            : this()
        {
            if (filename == null)
            {
                throw new ArgumentNullException("filename");
            }

            _pdfDataSourceBinder = new PdfDataSourceBinder(filename);
        }

        public PdfPrintBuilder(Stream stream)
            : this()
        {
            if (stream == null)
            {
                throw new ArgumentNullException("stream");
            }

            _pdfDataSourceBinder = new PdfDataSourceBinder(stream);
        }

        public PdfPrintDefaultBuilder UseDefault()
        {
            return new PdfPrintDefaultBuilder(_pdfDataSourceBinder);
        }

        public PdfPrintSettingsBuilder UseSettings()
        {
            return new PdfPrintSettingsBuilder(_pdfDataSourceBinder);
        }

        public PdfPrintSetupBuilder UseSetup()
        {
            return new PdfPrintSetupBuilder(_pdfDataSourceBinder);
        }
    }
}

@Kurt1960

We have created an investigation ticket (PDFNET-56950) in our issue tracking system to analyze this case. As soon as the ticket is resolved, we will let you know in this forum thread. Please be patient and spare us some time.

Ok thanks, but can you tell me approximately how long it will take.

@Kurt1960

The ticket has just been logged and we have not reviewed it yet. As soon as it is reviewed and analyzed, we will be able to share some ETA with you. However, we have recorded your concerns and will surely inform you once we have some updates in this regard. Please spare us some time.

The issues you have found earlier (filed as PDFNET-56950) have been fixed in Aspose.PDF for .NET 24.4.