Linux-Support in Aspose.BarCode with .NET 6 (libgdiplus, System.Drawing.Common)

According to System Requirements|Documentation Aspose.Barcode does not support .NET at the moment. Can you please confirm if this is the case?

In addition to that, Aspose has a dependency to libgdiplus, which I understand is no longer supported on linux os by Microsoft, starting with .NET 6.
See Breaking change: System.Drawing.Common only supported on Windows - .NET | Microsoft Learn

Can you please clarify your plans around this issue?+

Best regard!

@ernstscheithauer,

We have already logged a ticket in our database to add support for .NET6.0. This issue is logged as:
BARCODENET-37915 - Support for .NET6 and alternate of System.Drawing.Common

Pleae note, Aspose.BarCode will support .NET6, when Aspose.Drawing is built to workable state as System.Drawing.Common does not support many .NET platforms. Hopefully, such conflicts will be solved before the end of 2022Q1 and we could add support of .NET6.

@Amjad_Sahi
Any news as to having Aspose.BarCode support .NET 6 and an alternative to System.Drawing.Common?

@morlar,

Please note, Aspose.BarCode will support .NET6, when Aspose.Drawing (our another library) is built to workable state. Because System.Drawing.Common does not support many .NET platforms and we are still in choosing state between Skia.Sharp and Aspose.Drawing for .Net Core. We thought all these conflicts will be solved up to end of 2022Q1 and support of .NET6 will be added. This is previously planned to 2022Q1, but due to problems with Aspose.Drawing and other factors which could be more serious and the solution could be shifted at more later time.

We will update once any new information is available.

Hi, I port my app (Linux, netcoreapp3.1, Aspose.Barcode 22.5) to Alpine Linux 3.16.2 (with libgdplus) with Net6 but Aspose Barcode 22.8 fails to draw any barcode. It could not found some font …with QR barcode type too.
image.png (7.8 KB)
Linux contains some fonts:image.png (5.8 KB)

I tried to add Aspose.Drawing (without license key for now) but I cannot compile because got conflict to System.Drawing loaded by other nuget dependencies that cannot remove.

Is there any way to use the Aspose.Barcode library in Linux with Net6?
Internally does It needs some fonts that I have to install as prerequisite ?

If the prerequisite is Aspose.Drawing how can I do it coexist in a service that by loading other nuget packages also involuntarily inherits the original system.drawing ?

@riccardo.raccuglia,

For rendering graphics or drawing shapes, we are in process in choosing between Skia.Sharp and Aspose.Drawing for .NET Core for non-Windows os. Please note, due to problems and other factors which could be more serious so it is shifted at more later time (this year). We will update in this thread once any new information is available.

Release note notified the net6 support

image.png (37.0 KB)

I am sorry but your release note notified the net6 support.
I read them and start the migration. How may I print barcode now ?

@riccardo.raccuglia,

Sorry for the confusion.

Yes, we supported .NET6.0 but it will work seamlessly on Windows. Since it depends upon System.Drawing.Common for rendering graphics or drawing objects, so on non Windows os (e.g., linux), it may not work precisely until we implement our own drawing library or adopt Skia.Sharp accordingly. Anyways, could you please try to add “System.Drawing.EnableUnixSupport” to “*.runtimeconfig.json” as you are using the library on *nix systems.
Ref. document: Breaking change: System.Drawing.Common only supported on Windows - .NET | Microsoft Learn

Currently, we work on integration of Aspose.Drawing.Common as graphic library. But even after the integration Aspose.Barcode will rely on external fonts (the library does not/ will not have embedded fonts). In this key you can just set any font, which you have installed on your system. Here is the example:

BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Code128, "1234567");
generator.Parameters.Barcode.CodeTextParameters.Font.FamilyName = "Times New Roman";
generator.Parameters.CaptionAbove.Font.FamilyName = "Times New Roman";
generator.Parameters.CaptionBelow.Font.FamilyName = "Times New Roman";
generator.GenerateBarCodeImage();

Hi,
I need to understand when support to .Net 7 and .Net 8 on linux (without libgdi+) will be added.
Do you have a roadmap? Could you share a date?

Thanks

@mapo80,

We will check if we could provide our roadmap for upcoming .NET7 and .NET8 on linux (without libddi+).

We recently supported .NET6.0. Since it depends upon System.Drawing.Common for rendering graphics or drawing objects, so on non Windows os especially (e.g., linux), we may replace it with Skia.Sharp or use Aspose.Drawing accordingly. Once this task is completed, we can work on for .NET7 and .NET8 on linux (without libddi+) support.

Hi @Amjad_Sahi, I didn’t want to mention .net 8, Sorry I meant .net 6.
I think that Is very important to support .net 6 without using libgdi+.
I Hope you’ll support linux very soon.

Thanks

We are currently implementing Aspose.Drawing to make minimal difference to user from .Net Framework and .Net Core. This should be implemented in first quarter 2023 or early.

It would be urgent to have a solution to work under Linux with Net6 (which is the LTS version).
Otherwise we will be forced to look for another product, too bad because it seemed to work well

1 Like

@riccardo.raccuglia,

I have set the priority of the issue to “High” now. We will look into it and get back to you with more updates/details.

1 Like

I think that is important to support Linux. With .Net 7 it’s not possibile to use libgdiplus so this library is compatible only on windows.

@mapo80,

As we told earlier we are currently implementing Aspose.Drawing to make minimal difference to users from .NET Framework and .NET Core to support for .NET6 and 7 (without libgdi+) on linux. This should be implemented in first quarter of 2023 or early.