近期有做条码开发的工作,只给了个模板,导出和模板一致的条码。条码如图:

刚开始的时候因为对条码不熟悉,加上长得条码的样子误以为是一维条码,后发现是二维条码。
开发过程首先是word导出,底层条码导出。word导出采用freemarker的模板进行导出,网上例子很多。只说一些难点:
1)导出过程中涉及字体等如加黑,加粗。模板改成xml格式,你可以看到许多wordxml标签。
builder.append("<w:p>");
builder.append("<w:pPr>");
builder.append("<w:spacing w:before=“93” w:beforeLines=“30” w:line=“560” w:lineRule=“exact”/>");
//builder.append("<w:spacing w:before=“93” w:beforeLines=“30” w:line=“560” w:lineRule=“auto”/>");
builder.append("<w:ind w:firstLine=“640” w:firstLineChars=“200”/>");
builder.append("<w:rPr>");
builder.append("<w:rFonts w:hint=“eastAsia” w:ascii=“方正楷体简体” w:eastAsia=“方正楷体简体”/>");
builder.append("<w:sz w:val=“32”/>");
从模板中获取相关wordxml信息,后台组装。并给占位符赋值。
换行等<w:br/>
2)为了生成样式风格统一的条码试了各种方案,barcode4j,zxing,itext。最后确定为itext。因条码内容增加,条码会随着变化,为美观并符合条码规范,将长度固定,宽度自增。
BarcodePDF417 barcodePDF417 = new BarcodePDF417();
barcodePDF417.setOptions(BarcodePDF417.PDF417_FIXED_COLUMNS);
barcodePDF417.setCodeColumns(6);// 4.52
barcodePDF417.setText(msg.getBytes(“utf-8”));
barcodePDF417.setYHeight(2);
// 生成图片
Image pdfImg = barcodePDF417.createAwtImage(Color.black, Color.white);
3)导出条码长度固定,宽度自增。这样需要修改模板。
StringBuilder builder = new StringBuilder();
if(imageTyle){//启动动态image模板,动态设置image长宽
//1px=0.75pt
double imageWidth=Integer.parseInt(width)*0.75;
double imageHeight=Integer.parseInt(height)*0.75;
String style=“height:”+imageHeight+“pt”+";"+“width:”+imageWidth+“pt;”;
builder.append("<v:shape id="_x0000_i1025" o:spt=“75” type="#_x0000_t75" style=""+style+"" filled=“f” stroked=“f” coordsize=“21600,21600”>");
}else{
builder.append("<v:shape id="_x0000_i1025" o:spt=“75” type="#_x0000_t75" style=“height:48.5pt;width:128.5pt;” filled=“f” stroked=“f” coordsize=“21600,21600”>");
}
builder.append("<v:path/>");
builder.append("<v:fill on=“f” focussize=“0,0”/>");
builder.append("<v:stroke on=“f”/>");
builder.append("<v:imagedata r:id=“rId6” o:title=“1618815484140”/>");
builder.append("<o:lock v:ext=“edit” aspectratio=“t”/>");
builder.append("<w10:wrap type=“none”/>");
builder.append(“w10:anchorlock/”);
builder.append("</v:shape>");
return builder.toString();
这些wordxml都是从模板中所得
4)freemarker导出的word相对美观,但是缺少相关API,复杂的涉及字体,图片大小等需要向模板中动态添加wordxml标签。
5)barcode4j生成条码包含中文需要转化字符集
String msg = new String(code.getBytes(“utf-8”), “Cp437”);

pdf417条形码开发相关推荐

  1. 打印二维、多行的PDF-417条形码控件PDF417 Fonts and Encoder

    PDF417 Fonts and Encoder条形码控件使您可以在带有支持TrueType.BDF.FON.SFP.PCL laserjet soft.PostScript (type 1) Bin ...

  2. java生成pdf417_java生成PDF417条码

    最近要做一个功能 1.生成PDF417条形码. 2.识别PDF417条形码. 3.把条码插入到word文档的最有一页. 目前做好的只有第一点. 用到的一个jar包是 iText.jar PS:这个功能 ...

  3. Java条形码生成-Barcode4j

    背景 目前二维码的应用场景已经遍布各类互联网平台,通常是将产品/商品的唯一编号存储于二维码中以做扫码识别. 而用于生产环境的条形码技术仍然存在,如硬件设备制造.供应.物流运输等等. 在常见的产品信息管 ...

  4. 条形码入门指南(八):二维条形码

       现在条形码无处不在,几乎用于所有业务领域的识别.在业务流程中实施条形码时,可以自动执行程序以减少人为错误并提高生产率.条形码入门指南就是介绍IDAutomation旗下的条形码产品以及条形码符号 ...

  5. 分分钟教会你如何在表格中生成条形码

    昨天我们说了如何在表格中制作二维码,那么现在来说一下条形码怎样生成吧! 条形码想必大家也都不陌生,生活中随处可见条形码,超市中各类商品.服装标签.会员卡.快递单等好多地方都会用到条形码. 因为条形码可 ...

  6. PDF文件编写者c#类库(版本1.26.0)

    下载examples of PDF files - 5.0 MB 下载C# class library (DLL) - 292.2 KB 下载demo project (including DLL) ...

  7. iOS Passbook 入门 1/2

    步骤:(不完整) 1,生成pass.json的校验和: openssl sha1 pass.json 2,将生成的校验值置于manifest.json的pass.json的key-value下. 2, ...

  8. iOS 6 Passbook 入门 1/2

    步骤:(不完整) 1,生成pass.json的校验和: openssl sha1 pass.json 2,将生成的校验值置于manifest.json的pass.json的key-value下. 2, ...

  9. iOS 6 Passbook 入门 2/2

    原文地址:点击打开链接 这是 iOS 6 盛宴 的第二篇教程! 这篇教程是我们的新书 iOS 6 By Tutorials 中的一个缩略版本. Marin Todorov 是这个章节的作者 - 他也写 ...

  10. 二维码_拔剑-浆糊的传说_新浪博客

    二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码.一维条码的宽度记载着数据,而其长度没有记载数据.二维条码的长度.宽度均记载着数据.二維條碼有一維條碼沒有的「定位點」和「容錯機制」.容錯機制 ...

最新文章

  1. 2018/8/24阅读文献 A Unified Model for Multi-Objective Evolutionary Algorithms with Elitism
  2. 「小程序JAVA实战」小程序头像图片上传(下)(45)
  3. spring 托管bean_在非托管对象中使用Spring托管Bean
  4. fsimage文件丢失_hadoop fsimage edits关系
  5. javascript立体学习指南
  6. 鸿蒙系统6月可升级,华为鸿蒙2.0系统大规模升级从6月开始?
  7. ExtJs非Iframe框架加载页面实现
  8. python里元组和列表的共同点和不同点_Python_列表,元组和字典的异同
  9. ubuntu Vim的退出命令
  10. java的super是什么意思_java中Super到底是什么意思?必须举例说明!
  11. Python_pip_03_安装模块出现错误时咋整
  12. Tomcat的下载与安装
  13. 智慧能源一体化管控平台
  14. Google浏览器离线安装包下载
  15. 解决pycharm下载第三方库速度慢的问题
  16. [DP优化之平行四边形不等式]例题
  17. android 本地图片模糊,Android端图片模糊的实现原理及方案
  18. JavaScript百炼成仙 1.20 函数七重关之二 (作用域)
  19. PPT打开之后不能编辑,怎么解决?
  20. windows快速切换jdk版本号

热门文章

  1. 在ubuntu上一键安装TIM的脚本
  2. Ubuntu17.10下安装TIM
  3. oracle查看视图定义语句_oracle视图(oracle创建视图的sql语句)
  4. 王思聪吃热狗的c语言小程序,王思聪吃热狗火了,各种恶搞小程序!王校长:我不要脸的啊...
  5. Mendeley如何设置某期刊对应的参考文献格式?
  6. 用java怎么实现多语言翻译_快速实现中文翻译多国语言
  7. 在Windows下使用安装并启动HDFView踩坑记录
  8. matlab 获取axes图片,matlabaxes显示图片
  9. 计算机文化基础作品ppt,计算机文化基础PPT课件
  10. AD绘制原理图最基本的操作-第一张原理图(下)-PCB系列教程1-6