基于PDF417条码技术在移动终端的研究与应用

(整期优先)网络出版时间:2023-03-14
/ 3

基于PDF417条码技术在移动终端的研究与应用

张国晨,韩强飞,曹剑,,左斯颜

昆仑数智科技有限责任公司,新疆,库尔勒,841000

摘要:PDF417条码具有成本低,信息可随载体移动,不依赖于数据库和计算机网络、保密防伪性能强等优点,广泛应用于证件管理、报表管理、产品管理、票据管理等多领域多行业。在生活、娱乐、学习、办公等多场景互联网应用移动化的背景下,为了实现PDF417条码技术在移动应用的实现,通过对PDF417条码的实现技术收集与研究,以及对当前移动应用开发技术的分析,选择以Cordova技术的混合应用(Hybrid App)开发模式,阐述PDF417条码在移动应用的实现。

关键词:PDF417、移动应用、混合应用、Cordova

1 概述

当前互联网时代下,智能手机已经成为了人们生活中不可或缺的工具,移动互联网也越来越成为人们生活、学习、工作和娱乐的载体,而随着手机硬件的不断升级,WIFI的广泛覆盖,以及4G/5G网络的发展,使得多种多样功能丰富的应用在移动端的实现成为潮流。移动办公应用在企业管理、生产应用中有着也越来越多的需求。

在证件、工业生产、国防、金融、医药卫生、商业、交通运输等领域,二维条码有着广泛的应用。如何将条码运用在移动办公应用,是本次研究的内容。

2 PDF417条码技术和移动应用开发技术简述

2.1 PDF417条码简述

2.1.1 PDF417条码

PDF417条码是二维码的一种。它是一种高密度、高信息含量的便携式数据文件,是实现证件及卡片等大容量、高可靠性信息自动存储、携带并可用机器自动识读的理想手段。

PDF是取英文PORTABLE DATA FILE三个单词的首字母的缩写,意为“便携数据文件”。因为组成条码的每一符号字符都是由4个条和4个空构成,如果将组成条码的最窄条或空称为一个模块,则上述的4个条和4个空的总模块数一定为17,所以称417码或PDF417码。

图表 1 PDF417条码

2.1.2 PDF417条码实现技术

PDF417码在使用中需要将文本信息生成图像输出和通过图像识别获取文本信息,编码与解码技术是核心技术。编码及解码需要依据PDF417码图像规范,通过数字压缩、文本压缩、字节压缩等多种压缩模式减少条码符号的码子数量,提高生成条码的信息携带数量;为了保证条码的信息安全性,还需要将加密/解密技术与条码技术相结合;以及根据使用场景可设计不同纠错等级的条码,以实现当条形码的某部分遭到损坏,也可以通过存在于其它位置的错误纠正码将其信息还原出来。根据PDF417码规范,已有多款条码生成识别工具,比如:Aspose.BarCode、ZXing、TBarCode Office等[1]

Aspose.BarCode:是一款条形码生成和识别组件,主要使用托管的C#编写,能帮助开发者快速简便的向其Microsoft应用程序(WinForms, ASP .NET 和.NET Compact Framework)添加条形码生成和识别功能。

ZXing:一个开源的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。zxing可以实现使用手机的内置的摄像头完成条形码的扫描及解码。

TBarCode Office:Tbarcode Office是一款具有强大功能的条形码插件。无论在 Microsoft® Word 还是在 Excel® 中设置条码都非常的轻松。TBarCode Office 无缝集成在Microsoft® Word和Microsoft® Excel®中,条码可以在任意打印机上以尽可能高的品质打印输出。无需特别的打印机扩展或额外的条码字符。

2.2 移动应用开发技术简述

2.2.1 移动应用描述

所谓的APP就是英文Application的简称,主要是指智能手机的第三方应用程序。而APP制作公司的发展史也是循回渐进的过程。移动手机APP应用软件的兴起应该是从乔布斯推出IOS系统的iPhone开始的,智能手机出现之后,相继的也刮起了移动APP开发的热潮。

随着科技的进步与发展,智能化的移动设备不仅仅只有智能手机,还包括平板电脑、笔记本电脑、手表等。

2.2.2 移动应用开发技术分类

移动应用大致分为三类:原生应用程序、混合应用程序和网络应用程序。本机应用程序专为移动操作系统而设计,通常为iOS或Android。Web应用程序是用HTML5或CSS编写的,通常通过浏览器运行。混合应用程序是使用JavaScript、CSS和HTML5等Web技术构建的,其功能类似于伪装在本机容器中的Web应用程序[2]

1) 原生应用程序:所有针对特定移动平台的应用程序都称为本机应用程序。因此,适用于Apple设备的应用程序无法在Android设备中运行。因此,大多数企业为多个平台开发应用程序。在开发本机应用程序时,专业人士会整合一流的用户界面模块。这说明了更好的性能、一致性和良好的用户体验。用户还可以从更广泛的应用程序编程接口访问中受益,并可以无限制地使用来自特定设备的所有应用程序。此外,他们还可以毫不费力地从一个应用程序切换到另一个应用程序。创建此类应用程序的主要目的是确保特定移动操作系统的最佳性能。

2) 网络应用程序:基于Web的应用程序是使用HTML、CSS和JavaScript等标准Web技术实现的。与离线使用相比,正常行为或能够使用所有功能通常需要Internet访问。大多数(如果不是全部)用户数据都存储在云中。这些应用程序的性能类似于在浏览器中运行的Web应用程序,其速度可能明显慢于等效的本机应用程序。它也可能没有与本机应用程序相同级别的功能。

3) 混合应用程序(Hybrid App):混合应用程序的概念是本机和基于Web的应用程序的混合。使用Apache Cordova、Xamarin、React Native、Sencha Touch和其他框架开发的应用程序属于这一类。这些旨在支持跨多个平台的Web和本机技术。此外,这些应用程序的开发更容易、更快。它涉及使用在多个移动操作系统中工作的单一代码库。尽管有这些优势,混合应用程序表现出较低的性能。通常,应用程序无法在不同的移动操作系统中呈现相同的外观[3]

2.3 PDF417条码的移动应用技术分析

针对移动应用的三种开发技术特点,以及已有的PDF417条码实现技术分析,没有一种是通过JS/HTML/CSS可以直接实现的,故首先排除网络应用程序(Web应用)。剩余原生应用程序和混合应用程序,都有依托移动设备操作系统,使用原生程式编写应用程序的能力。故此两种开发方式都可以实现PDF417技术在移动终端的应用。但市场上存在着诸多操作系统,多种型号的移动智能终端,单就安卓系统一家来看,开发者就几乎要应对碎片级的屏幕和不同厂商的系统差异性,这都大大提高了移动应用的开发成本。

根据原生应用和混合应用不同的特点我们可知,混合应用牺牲了在相对于原生应用的运行速度以及性能等,转而提升了跨平台和方便开发的能力,并且随着智能手机的性能逐步提升,混合应用对用户体验上与原生应用并没有多少区别[4]

3 Cordova及插件系统

3.1 Cordova

Cordova是Apache的开源项目,在众多跨平台移动开发技术之中,Cordova是比较流行的一种,该框架可以让开发者使用HTML5+CSS+JavaScript 这些常见的 Web 开发技术来开发支持多平台的移动 App,开发者只需要掌握基本的 Web 开发知识,就可以开发出支持多平台的 App,大大减轻了工作量和学习成本。Cordova 提供了丰富的插件 API 来支持本地原生功能调用。用 JavaScript 代码调用本地原生功能看起来神秘,其实原理很简单。Cordova 实质上是利用了移动设备内置的 WebView组件提供的与设备本地 API 双向通信的能力,Cordova 针对不同平台的 WebView 做了扩展和封装,从而使开发者能够通过 JavaScript 访问设备的各种原生功能。

图表 2 Cordova架构

3.2 Cordova插件

插件是一个注入代码包,允许应用程序呈现的Cordova webview与运行它的本机平台进行通讯。插件提供对设备和平台功能的访问,而这些功能通常对基于Web的应用程序不可用。Cordova api的多有主要特性都是通过插件实现的。插件包含一个JS接口以及每个支持平台对应的本机代码库。本质上,这在一个公共JS接口后面隐藏了各种本机代码实现。

为了实现Web对native的通信, Cordova中插件的流程调用大致可分三个流程,流程一是Web通过JS/TS调用插件的JS;流程二是插件的JS调用插件的native代码;流程三是插件native接收到插件JS发送过来的请求,在插件native实现相应功能后,把响应结果返回给Web的JS/TS[5]

3.3 Cordova的可用于PDF417条码识别插件

phonegap-plugin-barcodescanner是跨平台的扫码插件,遵循Cordova插件规范适用于Cordova / PhoneGap,平台支持包含Android、IOS、Windows、Browser。支持的条码类型如图

图表 3 Barcode Type

4 Cordova应用创建

4.1 基础环境

以Android应用开发为例,我们假定已经在开发机器中完成诸如:JDK、Node.js、NPM、Android-SDK等相关工具安装及环境配置,并已经验证处于可用状态,以便完成后续应用程序的开发。

4.2 Cordova安装

打开命令提示符或终端窗口,执行命令npm install -g cordova,即可以全局方式安装最新版Cordova命令工具。安装完成后通过在命令提示符或终端窗口中执行命令cordova -version,正确时返回Cordova的版本号如11.0.0。

4.3 创建应用

打开命令提示符或终端窗口,在我们选定的存储路径下,执行命令以新建Cordova项目:cordova create pdf417 com.example.pdf417 Pdf417

4.4 添加平台支持

在项目目录中,执行cordova platform add android,完成Android平台支持。检查项目当前已支持平台可通过命令:cordova platform ls查看。

4.5 添加PDF417条码扫码插件

在项目目录中执行cordova plugin add phonegap-plugin-barcodescanner,完成扫码插件的载入。

至此完成项目工程的创建工作,项目整体目录及目录层次结构如图4所示。

图表 4 Cordova项目工程目录

4.6 PDF417条码扫码插件使用

在www/index.html添加一个button控件以触发扫码事件:

PDF417扫码

在www/js/index.js中添加button的click事件,以及扫码插件的调用代码

window.onload = function (){

    document.getElementById('btnScanner').addEventListener('click', scanner);

}

function scanner() {

    cordova.plugins.barcodeScanner.scan(

        function (result) {

            alert("We got a barcode\n" +

                "Result: " + result.text + "\n" +

                "Format: " + result.format + "\n" +

                "Cancelled: " + result.cancelled);

        },

        function (error) {

            alert("Scanning failed: " + error);

        },

        {}

    );

}

4.7 应用运行及效果

可以通过将Android手机与电脑相连接,开启开发者模式,以通过cordova run android 打包apk并安装在Android手机中,或者通过cordova build android –release 完成apk打包。

运行PDF417条码应用,点击“PDF417扫码”按钮对图1条码进行识别,得到如下结果

图表 5 扫码结果

5 结束语

在越来越多的开源技术支持下,我们可以快捷、简单的实现各种需求的移动应用。不能一味的追求应用的性能、效果,以及开发进度等,要根据不同需求的特点,结合不同开发技术的特性,最终选择适合的方式以实现需求目标。通过本次研究内容,以实现PDF417条码技术在移动终端的应用。

参考文献

[1]任晔.条码技术在电力物资全程供应链管理中的应用[J].现代商贸工业,2022,43(17):35-36.

[2]谢艳梅,米志强,杨晓峰.基于三导三效双线融合的条码技术与应用课程改革与实践[J].条码与信息系统,2021(06):38-41.

[3]刘桔,王玲,胡俊.采用条码技术全程实现白酒监管——贵州酱香型白酒质量安全追溯体系[J].条码与信息系统,2022(02):13-15.

[4]姚军.“以赛促学”模式在条码技术与应用教学中的研究[J].科技风,2021(26):66-68.

[5]张旭,崔涛.基于条码技术的现代仓储管理系统设计[J].数字通信世界,2022(06):30-32.