使用LeadTools将QR条形码写入PDF文件.但是输出PDF的质量看起来非常糟糕

本文关键字:PDF 输出 看起来 非常 QR LeadTools 条形码 文件 使用 | 更新日期: 2023-09-27 18:28:00

我从LeadTools唯一想要的就是能够读取/写入QR条形码到pdf文件。以下是我创建的将条形码写入pdf的方法:

private void WriteBarcodeToPDF(字符串ServerPath_imageFile,字符串值,bool topLeft=true){//创建条形码数据QRBarcodeData barcode=BarcodeData.CreateDefaultBarcodeData(条形码符号.QR)为QRBarcodeData;BarcodeEngine引擎=新的BarcodeEngine();

    using (RasterCodecs codecs = new RasterCodecs())
    {
        using (RasterImage image = codecs.Load(ServerPath_imageFile))
        {
            // Save the image
            barcode.SymbolModel = QRBarcodeSymbolModel.Model2AutoSize;
            barcode.Value       = value;
            // We will use the alignment to position the barcodes, so use all of the image
            barcode.Bounds      = new LogicalRectangle(0, 0, image.ImageWidth, image.ImageHeight, LogicalUnit.Pixel);
            // Set the write options
            QRBarcodeWriteOptions options = new QRBarcodeWriteOptions();
            if (topLeft)
            {
                options.HorizontalAlignment = BarcodeAlignment.Near;
                options.VerticalAlignment   = BarcodeAlignment.Near;
            }
            else
            {
                options.HorizontalAlignment = BarcodeAlignment.Far;
                options.VerticalAlignment   = BarcodeAlignment.Far;
            }
            //Options
            options.GroupNumber = 0;
            options.GroupTotal  = 0;
            options.XModule     = 30; //(Value allowed: 1 - 100) 
            options.ECCLevel    = QRBarcodeECCLevel.LevelH;
            // Write it
            engine.Writer.WriteBarcode(image, barcode, options);
            //Save As new Image.
            codecs.Save(image, ServerPath_imageFile, RasterImageFormat.RasPdf, 1);
        }
    }
}

以下是我的问题:

  1. 我想存储在条形码中的值只是一个10-12位的数字。就是这样。我听说有一款二维码21x21的ECC率很高。你能修改我的方法吗?这样它就会产生一个符合我需求的条形码(10-12位数字),并且具有最高的恢复率(ECC)?

  2. 输出的pdf质量非常差,不仅在我放条形码的页面上,而且pdf文件中的每个页面的文本都会急剧退化,我不认为它应该是这样的。我的方法肯定有问题。你能修一下吗?

谢谢大家。

使用LeadTools将QR条形码写入PDF文件.但是输出PDF的质量看起来非常糟糕

关于确定需要使用的条形码,请阅读以下页面,其中列出了可以存储在不同QR条形码中的数据量:http://www.leadtools.com/sdk/barcode/qr-chart.htm

您可以通过将SymbolModel属性设置为"QRBarcodeSymbolModel.Model2Version1"而不是"QRBarodeSymbolModel.Model2AutoSize"来选择大小。但是,如果将其设置为AutoSize,则工具箱将自动优化条形码大小。

关于质量差,问题可能是由源PDF的加载分辨率引起的。尝试将加载分辨率提高到300 DPI或更高。您可以通过将CodecsRasterizeDocumentLoadOptions类的XResolution和YResolution属性设置为所需值来实现这一点。

请参阅以下链接:http://www.leadtools.com/help/leadtools/v18/dh/co/leadtools.codecs~leadtools.codecsrasterizeddocumentloadoptions.html