C# Aspose BarCode QRCode низкого качества или небольшого размера - PullRequest
0 голосов
/ 24 марта 2020

У меня проблема с добавлением QR-кода в мой PDF-файл.

Если я использую такой код (с new Bitmap), качество получаемого изображения будет очень низким.

Если использовать barCodeBuilder.ImageQuality = ImageQualityMode.AntiAlias;, качество будет просто ужасным.

                    var barCodeBuilder = new BarCodeBuilder();

                    barCodeBuilder.CodeText = resultString;
                    barCodeBuilder.EncodeType = !qrCode ? EncodeTypes.Code128 : EncodeTypes.QR;

                    barCodeBuilder.AutoSize = false;
                    barCodeBuilder.Resolution = new Resolution(300, 300, ResolutionMode.Graphics);
                    barCodeBuilder.ImageHeight = 4000;
                    barCodeBuilder.ImageWidth = 4000;

                    // becomes even worse
                    //barCodeBuilder.ImageQuality = ImageQualityMode.AntiAlias;

                    var documentBuilder = new DocumentBuilder(document);
                    documentBuilder.MoveToField(field, false);

                    documentBuilder.InsertImage(new Bitmap(barCodeBuilder.GetOnlyBarCodeImage(), !qrCode ? new Size(200, 30) : new Size(100, 100)));

Если я использую код без new Bitmap, полученное изображение будет очень маленьким.

                    var barCodeBuilder = new BarCodeBuilder();

                    barCodeBuilder.CodeText = resultString;
                    barCodeBuilder.EncodeType = !qrCode ? EncodeTypes.Code128 : EncodeTypes.QR;

                    barCodeBuilder.AutoSize = false;
                    barCodeBuilder.Resolution = new Resolution(300, 300, ResolutionMode.Graphics);
                    barCodeBuilder.ImageHeight = 4000;
                    barCodeBuilder.ImageWidth = 4000;

                    // becomes even worse
                    //barCodeBuilder.ImageQuality = ImageQualityMode.AntiAlias;

                    var documentBuilder = new DocumentBuilder(document);
                    documentBuilder.MoveToField(field, false);

                    documentBuilder.InsertImage(barCodeBuilder.GetOnlyBarCodeImage());
...