基于Metronic的Bootstrap开发框架经验总结(14)--条码和二维码的生成及打印处理

在很多项目里面,对条形码和二维码的生成和打印也是一种很常见的操作,在Web项目里面,我们可以利用JS生成条形码和二维码的组件有很多。本文引入两个比较广泛使用的JS组件,用来处理条形码和二维码的生成处理,并介绍如何利用CLODOP组件实现内容的打印输出。
生成条形码使用组件JsBarcode,生成二维码使用组件qrcodejs。

1、条形码的生成

条码的作用一般在一些商品标签上,方便使用条码枪快速、准确录入信息。
如下所示是一种条形码

这里条形码生成使用了JsBarcode组件进行处理,它支持很多格式的条码格式,如下所示。

它的简单代码例子如下所示。

//HTML代码
<svg id="barcode"></svg>
<!-- or -->
<canvas id="canvas"></canvas>
<!-- or -->
<img id="barcode"/>

//JS代码
JsBarcode("#barcode", "Hi!");
// or with jQuery
$("#barcode").JsBarcode("Hi!");

生成的图片格式如下所示。

JsBarcode组件支持多种选项参数的设置,如下所示的代码

JsBarcode("#barcode", "1234", {
  format: "pharmacode",
  lineColor: "#0aa",
  width:4,
  height:40,
  displayValue: false
});

JsBarcode("#barcode")
  .options({font: "OCR-B"}) // Will affect all barcodes
  .EAN13("1234567890128", {fontSize: 18, textMargin: 0})
  .blank(20) // Create space between the barcodes
  .EAN5("12345", {height: 85, textPosition: "top", fontSize: 16, marginTop: 15})
  .render();

通过该组件的案例代码介绍,我们可以了解到生成常规二维码的使用方式。
例如我们在界面上添加了以下HTML代码。

<div class="row" id="barDiv1">
    <div class="col-md-4 col-sm-4 col-xs-4">
        条形码(770 145 896 701):<br />
        <img alt="" id="barcode1" />
    </div>
    <div class="col-md-4 col-sm-4 col-xs-4">
        条形码(770 145 896 702):<br />
        <img alt="" id="barcode2" />
    </div>
    <div class="col-md-4 col-sm-4 col-xs-4">
        条形码(770 145 896 703):<br />
        <img alt="" id="barcode3" />
    </div>
</div>

然后通过JS代码实现二维码的生成。

//使用JsBarcode生成条形码
for (var i = 1; i < 10; i++) {
    var barcodeValue = "77014589670" + i;//前缀 + 数值
    JsBarcode("#barcode" + i, barcodeValue, {
        format: "CODE128",
        displayValue: true,
        fontSize: 24,
        lineColor: "#0cc"
    });
}

最后我们可以看到具体的生成效果如下所示。

从这里我们可以看到,使用JS实现条形码的生成是非常方便简洁的,同事速度也是很不错的。

2、二维码的生成

二维码实现可以通过使用组件qrcodejs进行生成,二维码也可以使用组件jquery-qrcode进行生成,也相对比较简洁,不过打印二维码文档的时候,jquery-qrcode没有显示二维码图片,而组件qrcodejs则工作正常,因此推荐使用组件qrcodejs。
这个qrcodejs组件使用方式也很简单,基础使用代码如下所示。

<div id="qrcode"></div>
<script type="text/javascript">
new QRCode(document.getElementById("qrcode"), "http://jindo.dev.naver.com/collie");
</script>

复杂一点的使用JS代码如下所示。

<div id="qrcode"></div>

<script type="text/javascript">
var qrcode = new QRCode(document.getElementById("qrcode"), {
    text: "http://jindo.dev.naver.com/collie",
    width: 128,
    height: 128,
    colorDark : "#000000",
    colorLight : "#ffffff",
    correctLevel : QRCode.CorrectLevel.H
});
</script>

通过了解该组件的使用,我们可以在项目中增加一个实际的代码进行测试,如下所示。

<table border='0' width='100%'>
    <tr>
        <td>
            设备二维码(9001):<br />
            <div id="imgDevice9001"></div>
        </td>
        <td>
            设备二维码(9002):<br />
            <div id="imgDevice9002"></div>
        </td>
        <td>
            设备二维码(9003):<br />
            <div id="imgDevice9003"></div>
        </td>
    </tr>
    <tr style="height:20px"><td colspan="3"></td></tr>
    ......
</table>

具体我们可以利用JS动态生成相关的二维码。

//设备图片二维码
for (var i = 9001; i < 9010; i++) {
    var url = "http://www.iqidi.com/H5/device?devicecode=" + i;

    //使用jquery.qrcode的做法
    //$("#imgDevice" + i).qrcode({ width: 100, height: 100, text: url });
    //$("#imgDevice" + i).css("height", "100px");

    //使用qrcodejs的做法
    var qrcode = new QRCode(document.getElementById("imgDevice" + i), {
        text: url,
        width: 128,
        height: 128,
        colorDark: "#000000",
        colorLight: "#ffffff",
        correctLevel: QRCode.CorrectLevel.H
    });
}

最后界面生成的二维码如下所示。

3、条形码和二维码的打印处理

介绍我二维码和条形码的生成,关于它们的打印,可以利用我介绍过的CLODOP进行打印处理,需要了解可以参考下随笔《基于MVC+EasyUI的Web开发框架经验总结(16)--使用云打印控件C-Lodop打印页面或套打报关运单信息
我们在这里介绍的打印,也是基于这个控件的打印处理的。
当然,如果打印,也是可以利用PrintThis这个组件进行处理的(详细可以参考随笔《基于Metronic的Bootstrap开发框架经验总结(9)--实现Web页面内容的打印预览和保存操作》),不过总体效果没有上面的CLODOP的打印效果佳。
打印JS代码如下所示,可以采用下面两个函数的其中之一进行处理。

//使用表格格式化输出
function PrintBarcodeWithTable() {
    LODOP = getLodop();
    LODOP.PRINT_INIT("条码_格式化输出");
    var strHTML = "<table border='0' width='100%' >";
    strHTML = strHTML + "<tr><td>";
    strHTML = strHTML + $("#barDiv1").html();
    strHTML = strHTML + "</td></tr>";
    strHTML = strHTML + "<tr><td>";
    strHTML = strHTML + $("#barDiv2").html();
    strHTML = strHTML + "</td></tr>";
    strHTML = strHTML + "<tr><td>";
    strHTML = strHTML + $("#barDiv3").html();
    strHTML = strHTML + "</td></tr>";
    LODOP.ADD_PRINT_TABLE(88, 200, 700, 900, strHTML);

    LODOP.SET_SHOW_MODE("PREVIEW_IN_BROWSE", 1);
    LODOP.PREVIEW();
}

//使用分页输出
function PrintBarcodeWithPaging() {
    LODOP = getLodop();
    LODOP.PRINT_INIT("条码_分页输出");
    LODOP.ADD_PRINT_HTM(100, 100, 600, 800, $("#barDiv1").html());
    LODOP.NewPage();
    LODOP.ADD_PRINT_HTM(100, 100, 600, 800, $("#barDiv2").html());
    LODOP.NewPage();
    LODOP.ADD_PRINT_HTM(100, 100, 600, 800, $("#barDiv3").html());
    LODOP.NewPage();

    LODOP.SET_SHOW_MODE("PREVIEW_IN_BROWSE", 1);
    LODOP.PREVIEW();
}

条码的打印效果如下所示。

而打印二维码的JS代码如下所示。

//打印二维码
function PrintQrcode2() {
    CreatePrintData($("#qrcode").html());
    LODOP.SET_SHOW_MODE("PREVIEW_IN_BROWSE", 1);
    LODOP.PREVIEW();
}

//打印数据构建
function CreatePrintData(html) {
    LODOP = getLodop();

    LODOP.PRINT_INIT("");
    //var strBodyStyle = "<link type='text/css' rel='stylesheet' href='/Content/Themes/Default/style.css' />";
    var strBodyStyle = "<style><!--table { border:1;background-color: #CBCBCC } td {border: 1; }";
    strBodyStyle += " th { background-color:#F1F1F3;padding-left:5px;border:1}--></style>";
    var strFormHtml = strBodyStyle + "<body>" + html + "</body>";
    LODOP.ADD_PRINT_HTM(20, 40, 710, 900, strFormHtml);
    LODOP.PREVIEW();
}

得到的二维码打印效果如下所示。

最终完成了这个关于条形码、二维码的动态生成,以及图形打印的相关操作了。整个模块的界面如下所示。

关于条形码、二维码的处理,我们这里引入的条形码组件JsBarcode和二维码组件qrcodejs是非常不错的开源JS组件,满足了我们大多数的要求,而且使用方便、简洁,希望这些内容能够给你的项目提供灵感及用处。

本文转自博客园伍华聪的博客,原文链接:基于Metronic的Bootstrap开发框架经验总结(14)--条码和二维码的生成及打印处理,如需转载请自行联系原博主。

时间: 2024-10-15 01:54:41

基于Metronic的Bootstrap开发框架经验总结(14)--条码和二维码的生成及打印处理的相关文章

基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作_javascript技巧

在很多项目里面,对条形码和二维码的生成和打印也是一种很常见的操作,在Web项目里面,我们可以利用JS生成条形码和二维码的组件有很多.本文引入两个比较广泛使用的JS组件,用来处理条形码和二维码的生成处理,并介绍如何利用CLODOP组件实现内容的打印输出. 生成条形码使用组件JsBarcode,生成二维码使用组件qrcodejs. 1.条形码的生成 条码的作用一般在一些商品标签上,方便使用条码枪快速.准确录入信息. 如下所示是一种条形码   这里条形码生成使用了JsBarcode组件进行处理,它支持

基于Metronic的Bootstrap开发框架经验总结(17)-- 使用 summernote插件实现HTML文档的编辑和图片插入操作

在很多场合,我们需要在线编辑HTML内容,然后在页面上或者其他终端上(如小程序.APP应用等)显示,编辑HTML内容的插件有很多,本篇介绍基于Bootstrap的 summernote插件实现HTML文档的编辑和图片插入操作,这个控件的使用非常方便,并且用户群也很大. Summernote 是一个简单灵活,所见即所得(WYSIWYG)的编辑器,Summernote是一个轻量级.灵活基于Bootstrap和jQuery的HTML文本编辑器,拥有强大的API配置功能,多国语言支持支持Bootstra

基于Metronic的Bootstrap开发框架经验总结(15)-- 更新使用Metronic 4.75版本

在基于Metronic的Bootstrap开发框架中,一直都希望整合较新.较好的前端技术,结合MVC的后端技术进行项目的开发,随着时间的推移,目前Metronic也更新到了4.75版本,因此着手对这个版本的内容进行一次更新调整,以期达到与时俱进的目的.从最近这几个版本来看,Metronic本身的目录结构以及功能没有太多的变化,但增加了一些较为方便的功能,本篇随笔对比它们进行介绍. 1.Metronic版本更新 首先我们来对空白页面进行不同版本的对比,文件的对比首选Beyond Compare,两

基于Metronic的Bootstrap开发框架经验总结(18)-- 在代码生成工具Database2Sharp中集成对Bootstrap-table插件的分页及排序支持

在我们开发系统界面,包括Web和Winform的都一样,主要的界面就是列表展示主界面,编辑查看界面,以及一些辅助性的如导入界面,选择界面等,其中列表展示主界面是综合性的数据展示界面,一般往往需要对记录进行合理的分页,集成各种增删改查的按钮等功能.随着开发项目的需求变化,对数据记录分页展示.排序等功能都是常态的要求,因此在代码生成工具中调整了主列表界面的列表展示插件为Bootstrap-table插件,本篇随笔主要介绍在代码生成工具Database2Sharp中集成对Bootstrap-table

基于Metronic的Bootstrap开发框架经验总结(12)--页面链接收藏夹功能的实现

在一个系统里面,往往有很多菜单项目,每个菜单项对应一个页面,一般用户只需要用到一些常用的功能,如果每次都需要去各个层次的菜单里面去找对应的功能,那确实有点繁琐.特别是在菜单繁多,而客户又对系统整体不熟悉的情况下,如果有一个类似浏览器的收藏夹模块,把一些常用的菜单连接保存起来,每次从这个收藏夹主页去找对应的页面,那样确实是省事省力,非常方便.本篇随笔就是介绍在基于Metronic的Bootstrap开发框架里面实现这个收藏夹的思路. 1.系统的收藏夹界面处理效果 为了实现这个收藏夹功能,我们也需要

基于Metronic的Bootstrap开发框架经验总结(13)--页面链接收藏夹功能的实现2(利用Sortable进行拖动排序)

在上篇随笔<基于Metronic的Bootstrap开发框架经验总结(12)--页面链接收藏夹功能的实现>上,我介绍了链接收藏夹功能的实现,以及对收藏记录的排序处理.该篇随笔主要使用功能按钮的方式移动收藏记录,功能虽然实现的还算不错,不过文章出来后,有读者同行指出可以利用直接拖动的方式实现排序更方便,因此对其中列表记录的排序进行了研究,从而介绍了如何利用Sortable开源JS组件实现拖动排序的处理,本篇随笔介绍了该组件在连接收藏夹排序中的应用. 1.收藏记录的排序处理回顾 上篇随笔介绍的收藏

基于Metronic的Bootstrap开发框架经验总结(11)--页面菜单的几种呈现方式

在常规的后台管理系统或者前端界面中,一般都有一个导航菜单提供给用户,方便选择所需的内容.基于Metronic的Bootstrap开发框架,是整合了Metroinc样式,以及Boostrap组件模块的内容,因此菜单的效果自然也是和Bootstrap一脉相承的.基于经常使用的几种菜单样式,本文进行了相关的介绍和展示. 1.菜单展示的三种方式 菜单的展示可以做成各种各样的效果,本文只是针对性的介绍其中的三种,两种左侧竖放的菜单,一种是水平横放的菜单. 样式1: 菜单收缩后界面如下所示. 样式2: 样式

基于Metronic的Bootstrap开发框架经验总结(10)--优化Bootstrap图标管理

在基于Bootstrap开发的项目中,鲜艳颜色的按钮,以及丰富的图表是很吸引人的特点,为了将这个特点发挥到极致,可以利用Bootstrap图标抽取到数据库里面,并在界面中进行管理和使用,这样我们可以把这些图标方便应用在各个页面部件上,如菜单模块,按钮界面,表单输入等多个场合进行使用.在前面随笔<基于Metronic的Bootstrap开发框架经验总结(4)--Bootstrap图标的提取和利用>中,我对如何抽取Bootstrap图标,并单独开发一个页面进行图表的管理,本随笔介绍如何在这个基础上

基于Metronic的Bootstrap开发框架经验总结(9)--实现Web页面内容的打印预览和保存操作

在前面介绍了很多篇相关的<Bootstrap开发框架>的系列文章,这些内容基本上覆盖到了我这个Bootstrap框架的各个主要方面的内容,总体来说基本达到了一个稳定的状态,随着时间的推移可以会引入一些更好更新的内容进行完善,本篇继续这个系列,主要介绍如何实现Web页面内容的打印预览和保存操作. 1.Web页面打印的问题 在此之前,我一般使用比较好用的LODOP来执行打印的操作,这个在我之前有很多文章都有涉及,这个控件是一个ActiveX的控件,需要下载安装后就可以在页面是进行打印的排版设计,预