Word控件Aspose.Words教程:使用 Aspose.在 Java 中对条码使用 ECI 编码

Aspose.Words是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。

Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式。

Aspose.words 最新下载(qun:761297826)icon-default.png?t=N4HBhttps://www.evget.com/product/564/download

Aspose.BarCode for Java 19.6发布,其中包含新的属性和改进,这将简化您使用 ECI 编码信息读写条形码的工作,还可以读取低分辨率的 TIFF 图像。这些 API 更改和其他详细信息可以在API 文档的发行说明页面中获得。让我分享这些新功能的细节以及它们在编程中的使用。

条形码的 ECI 编码

实施条形码读取是一项相当复杂的任务。条形码阅读器在读取条形码时需要大量配置和信息,例如用于编码符号中数据的参考。通过在条形码中添加扩展通道解释 (ECI) 设置,将此信息嵌入条形码中。此机制允许在条形码符号中使用通常不受支持的国家字符集,例如阿拉伯语、希腊语或日语。扫描符号时,此信息不打算成为条形码数据的一部分,这就是扫描符号时保持透明的原因。它只是一个开关或勾选框,由阅读器选中,然后进行符号相关的 ECI 选择。在基本通道模式下,ECI 控制信息不会从阅读器传输到主机系统。在扩展通道模式下,

Aspose.Barcode 通过在条形码生成器类中提供属性 QrParameters.setQrECIEncoding() 和 getQrECIEncoding() 来实现此功能。例如,如果要将编码模式设置为 ECI,将编码方案设置为 UTF 8,则在创建条码时应使用以下语句。

/ initialize a BarcodeGenerator class object
// Set its CodeText & Symbology Type
BarcodeGenerator generator = new BarcodeGenerator(com.aspose.barcode.EncodeTypes.QR, "1234567890");
// Set encoding mode, ForceQR (default) for standard QR, ECI encoding type,
// error correction level
generator.getParameters().getBarcode().getQR().setQrEncodeMode(QREncodeMode.ECI_ENCOD
generator.getParameters().getBarcode().getQR().setQrEncodeType(QREncodeType.FORCE_QR);
generator.getParameters().getBarcode().getQR().setQrECIEncoding(ECIEncodings.UTF8);
generator.getParameters().getBarcode().getQR().setQrErrorLevel(QRErrorLevel.LEVEL_L);
// Get barcode image Bitmap & Save QR code
java.awt.image.BufferedImage combined = generator.generateBarCodeImage();
java.io.File imageFile = new java.io.File(dataDir + "EncodeQRCodEInECIMode_out.png");
javax.imageio.ImageIO.write(combined, "PNG", imageFile);

以下是使用此功能时提供的 ECI 编码。

ISO_8859_1 - ISO/IEC 8859-1 拉丁字母 1 号编码。ECI ID:“\000003”。
ISO_8859_2 - ISO/IEC 8859-2 拉丁字母 2 号编码。ECI ID:“\000004”。
ISO_8859_3 - ISO/IEC 8859-3 拉丁字母 3 号编码。ECI ID:“\000005”。
ISO_8859_4 - ISO/IEC 8859-4 拉丁字母 4 号编码。ECI ID:“\000006”。
ISO_8859_5 - ISO/IEC 8859-5 拉丁/西里尔字母编码。ECI ID:“\000007”。
ISO_8859_6 - ISO/IEC 8859-6 拉丁/阿拉伯字母表编码。ECI ID:“\000008”。
ISO_8859_7 - ISO/IEC 8859-7 拉丁/希腊字母表编码。ECI ID:“\000009”。
ISO_8859_8 - ISO/IEC 8859-8 拉丁/希伯来字母表编码。ECI ID:“\000010”。
ISO_8859_9 - ISO/IEC 8859-9 拉丁字母 5 号编码。ECI ID:“\000011”。
ISO_8859_10 - ISO/IEC 8859-10 拉丁字母表 6 号编码。ECI ID:“\000012”。
ISO_8859_11 - ISO/IEC 8859-11 拉丁文/泰文字母表编码。ECI ID:“\000013”。
ISO_8859_13 - ISO/IEC 8859-13 拉丁字母表第 7 号(波罗的海沿岸)编码。ECI ID:“\000015”。
ISO_8859_14 - ISO/IEC 8859-14 拉丁字母表 8 号(凯尔特语)编码。ECI ID:“\000016”。
ISO_8859_15 - ISO/IEC 8859-15 拉丁字母编号 9 编码。ECI ID:“\000017”。
ISO_8859_16 - ISO/IEC 8859-16 拉丁字母表 10 号编码。ECI ID:“\000018”。
Shift_JIS - Shift JIS (JIS X 0208 Annex 1 + JIS X 0201) 编码。ECI ID:“\000020”。
Win1250 - Windows 1250 Latin 2(中欧)编码。ECI ID:“\000021”。
Win1251 - Windows 1251 西里尔文编码。ECI ID:“\000022”。
Win1252 - Windows 1252 Latin 1 编码。ECI ID:“\000023”。
Win1256 - Windows 1256 阿拉伯语编码。ECI ID:“\000024”。
UTF16BE - ISO/IEC 10646 UCS-2(高位字节优先)编码。ECI ID:“\000025”。
UTF8 - ISO/IEC 10646 UTF-8 编码。ECI ID:“\000026”。
US_ASCII - ISO/IEC 646:1991 ISO 7 位编码字符集编码的国际参考版本。ECI ID:“\000027”。
Big5 - Big 5(台湾)中文字符集编码。ECI ID:“\000028”。
GB18030 - GB (PRC) 中文字符集编码。ECI ID:“\000029”。
EUC_KR - 韩语字符集编码。ECI ID:“\000030”。

低分辨率 TIFF 上的条码识别

有时,有些图像的分辨率非常低,无法检测到,原因之一是条形码中的条被完全擦除。这个问题会使它们变得非常困难,甚至无法被任何条码读取软件读取。我们为此付出了特别的努力,并添加了一个新属性来解决这个问题。新的公共属性 AllowOneDWipedBarsRestoration 已添加到 QualitySettings。它允许 1D 条形码引擎识别图案中具有单个擦除/粘合条的条形码。属性在 HighQuality、MaxBarCodes 模式下默认启用。

目前该属性用于 Code128、GS1Code128、SCC14、EAN14、SSCC18、AustralianPosteParcel、SwissPostParcel 条形码类型。您可以通过在从 BarCodeReader 对象读取信息之前调用以下代码行来使用此功能,以指示它读取低分辨率 TIFF 图像。

// The path to the documents directory.
String dataDir = Utils.getDataDir(SingleWipedBarsInPattern.class) + "BarcodeReader/advanced_features/";
// Create an instance of BarCodeReader class
// Set file path
// Set the recognition type
BarCodeReader reader = new BarCodeReader(dataDir + "file.tiff", DecodeType.CODE_128);
// Perform read operation
reader.getQualitySettings().setAllowOneDWipedBarsRestoration(true);
for (BarCodeResult result : reader.readBarCodes()) {
System.out.println("CodeText: " + result.getCodeText());
System.out.println("Symbology type: " + result.getCodeType());

以上便是本篇文章的所有内容,要是您还有其他关于产品方面的问题,欢迎咨询我们,或者加入我们官方技术交流群。

猜你喜欢

转载自blog.csdn.net/m0_67129275/article/details/130821824#comments_26614289