本文介绍如何通过Java程序在PDF文档中添加条码和二维码。创建条码时,可创建多种不同类型的条码,包括Codebar、Code11、Code128A、Code128B、Code32、Code39、Code39 Extended 、Code93和Code93 Extended等等,本文以其中的Codebar、Code128A和Code39为例介绍创建方法,可通过参考此方法创建其他类型的条码。

本文中的程序测试环境包括:

  • IDEA
  • JDK 1.8.0
  • Spire.Office.jar

 

:jar导入,可通过创建Maven程序项目,并在pom.xml中配置Maven仓库路径,并指定Free Spire.Office for Java的Maven依赖,点击“Import Changes”即可导入JAR包。(如果使用的Eclipse, 点击保存按钮导入),配置如下:

<repositories>
<repository>
<id>com.e-iceblue</id>
<url>http://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories> <dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.office.free</artifactId>
<version>3.1.1</version>
</dependency>
</dependencies>

另外,也可通过下载jar包,手动导入Spire.Office.jar到Java程序。

Java代码

import com.spire.barcode.*;
import com.spire.pdf.*;
import com.spire.pdf.barcode.*;
import com.spire.pdf.graphics.*; import java.awt.*;
import java.awt.geom.Point2D;
import java.awt.image.BufferedImage; public class AddBarcodeInPDF {
public static void main(String[] args) {
//创建PdfDocument对象
PdfDocument pdf = new PdfDocument(); //添加一页
PdfPageBase page = pdf.getPages().add(); //初始化y变量
double y = 15; //创建字体
PdfFont font= new PdfFont(PdfFontFamily.Helvetica, 12,PdfFontStyle.Bold); // 绘制文本“Codebar:”到PDF,并绘制Codebar条码到PDF
PdfTextWidget text = new PdfTextWidget();
text.setFont(font);
text.setText("Codebar:");
PdfLayoutResult result = text.draw(page, 0, y);
y =(float)(result.getBounds().getY()+ result.getBounds().getHeight() + 2);
PdfCodabarBarcode codebar= new PdfCodabarBarcode("00:12-3456/7890");//创建条码
codebar.setBarcodeToTextGapHeight(1f);
codebar.setBarHeight(25f);
codebar.setEnableCheckDigit(true);
codebar.setShowCheckDigit(true);
codebar.setTextDisplayLocation(TextLocation.Bottom);
PdfRGBColor blue = new PdfRGBColor(Color.blue);
codebar.setTextColor(blue);
Point2D.Float point = new Point2D.Float();
point.setLocation(0,y);
codebar.draw(page,point);//绘制条码到PDF页面
y = codebar.getBounds().getY()+ codebar.getBounds().getHeight() + 5; //绘制文本“Code128-A:”到PDF,并绘制Code128A条码到PDF
text.setText("Code128-A:");
result = text.draw(page, 0, y);
page = result.getPage();
y =result.getBounds().getY()+ result.getBounds().getHeight() + 2;
PdfCode128ABarcode code128 = new PdfCode128ABarcode("HELLO 00-123");
code128.setBarcodeToTextGapHeight(1f);
code128.setBarHeight(25f);
code128.setTextDisplayLocation(TextLocation.Bottom);
code128.setTextColor(blue);
point.setLocation(point.x,y);
code128.draw(page, point);
y =code128.getBounds().getY()+ code128.getBounds().getHeight() + 5; //绘制文本“Code39”到PDF,绘制Code39条形码到PDF
text.setText("Code39:");
result = text.draw(page, 0, y);
page = result.getPage();
y =result.getBounds().getY()+ result.getBounds().getHeight() + 2;
PdfCode39Barcode code39 = new PdfCode39Barcode("16-273849");//绘制条码
code39.setBarcodeToTextGapHeight(1f);
code39.setBarHeight(25f);
code39.setTextDisplayLocation(TextLocation.Bottom);
code39.setTextColor(blue);
point.setLocation(point.x,y);
code39.draw(page, point);//绘制条码到PDF页面 //生成二维码图片,绘制到PDF页面
text.setText("QRCode:");//绘制文本“QR Code:”到PDF
result = text.draw(page, 200, 0);
page = result.getPage();
BarcodeSettings settings = new BarcodeSettings();//创建二维码图形
settings.setType(BarCodeType.QR_Code);
settings.setData("123456789");
settings.setData2D("123456789");
settings.setX(1f);
settings.setLeftMargin(0);
settings.setShowTextOnBottom(true);
settings.setQRCodeECL(QRCodeECL.Q);
settings.setQRCodeDataMode(QRCodeDataMode.Numeric);
BarCodeGenerator generator = new BarCodeGenerator(settings);
Image image = generator.generateImage();
PdfImage pdfImage = PdfImage.fromImage((BufferedImage)image);//绘制二维码图片到PDF
y = result.getBounds().getY()+ result.getBounds().getHeight() + 2;
page.getCanvas().drawImage(pdfImage,200,y); //保存PDF文档
pdf.saveToFile("添加条码、二维码.pdf");
pdf.dispose();
}
}

条码、二维码添加效果图:

(完)

Java 添加条码、二维码到PDF文档的更多相关文章

  1. Java 添加条码、二维码到Word文档

    本文介绍如何在Word文档中添加条码.二维码.可在文档正文段落中添加,也可在页眉页脚中添加.下面将通过Java代码示例介绍如何实现. 使用工具:Free Spire.Office for Java(免 ...

  2. Java生成条码二维码

    一.概述 可用barcode4j或zxing等第三方库,推荐zxing. barcode4j资料链接:http://barcode4j.sourceforge.net/ zxing资料链接:https ...

  3. Java生成艺术二维码也可以很简单

    原文点击: Quick-Media Java生成艺术二维码也可以很简单 现在二维码可以说非常常见了,当然我们见得多的一般是白底黑块,有的再中间加一个 logo,或者将二维码嵌在一张特定的背景中(比如微 ...

  4. LODOP条码二维码简短问答及相关博文

    LODOP如何输出条码 条码输出 参考样例11 http://www.c-lodop.com/demolist/PrintSample11.html超文本表格中的条码参考样例47 http://www ...

  5. online QRcode generator , QRcode=== (Quick Response Code) , 二维条码,二维码,彩色二维码,图片二维码,

    online QRcode generator ,  QRcode=== (Quick Response Code)    , 二维条码,二维码,彩色二维码,图片二维码, 1 http://cli.i ...

  6. Java 验证码、二维码

    Java 验证码.二维码 资源 需要:   jelly-core-1.7.0.GA.jar网站:   http://lychie.github.io/products.html将下载下来的 jelly ...

  7. 在java中生成二维码,并直接输出到jsp页面

    在java中生成的二维码不存到磁盘里要直接输出到页面上,这就需要把生成的二维码直接以流的形式输出到页面上,我用的是myeclipse 和 tomcat 它的原理是:在加载页面时,根据img的src(c ...

  8. java代码解析二维码

    java代码解析二维码一般步骤 本文采用的是google的zxing技术进行解析二维码技术,解析二维码的一般步骤如下: 一.下载zxing-core的jar包: 二.创建一个BufferedImage ...

  9. eclipse导入java和android sdk源码,帮助文档

    eclipse导入java和android sdk源码,帮助文档 http://blog.csdn.net/ashelyhss/article/details/37993261 JavaDoc集成到E ...

随机推荐

  1. ~~并发编程(十四):Queue~~

    进击のpython ***** 并发编程--Queue 进程其实就提过这个Queue的问题,我们为什么在进程使用Queue? 是因为当时我们想要对共享数据进行修改,同时也希望它能够自动的给我加个锁 基 ...

  2. Servlet学习之Maven导入Servlet-api包与Tomcat冲突报500问题

    Maven导入Servlet-api包导致无法运行报500的问题 以下解决方式适用于跟我类似的配置环境,构建servlet程序后,启动Tomcat页面报"类com.tioxy.servlet ...

  3. 女生学Java编程是什么感受?

    那我就代表女生来说说感受 在编程的世界很难遇到好看的帅哥 记得当年15年7月4号是我实习生入职的日子,因为是校企合作,所以没有面试.老师推荐.直接入职.刚来北京第一个感觉就是人多,还有就是热.刚到公司 ...

  4. PHP array_multisort() 函数

    实例 返回一个升序排列的数组: <?php$a=array("Dog","Cat","Horse","Bear", ...

  5. PHP each() 函数

    实例 返回当前元素的键名和键值,并将内部指针向后移动: <?php $people = array("Peter", "Joe", "Glenn ...

  6. python网络爬虫实战PDF高清完整版免费下载|百度云盘|Python基础教程免费电子书

    点击获取提取码:vg1y python网络爬虫实战帮助读者学习Python并开发出符合自己要求的网络爬虫.网络爬虫,又被称为网页蜘蛛,网络机器人,是一种按照一定的规则,自动地抓取互联网信息的程序或者脚 ...

  7. win10 安装tensorflow2.0 GPU版本遇到的坑

          背景:我的机器上tensorflow 1.14 & 2.0,这俩版本都有,之前都是用1.14版本,今天试一下2.0尝尝鲜, 结果就掉坑去了 把CUDA10.1 和 cudnn 安装 ...

  8. 【python设计模式-创建型】工厂方法模式

    工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻 ...

  9. JQuery插件,轻量级表单模型验证(续 二)

    好不容易,有心思,那就把没做完的JQuery轻量级表单验证做完吧 之前做到了空参数验证的,现在增加带参数的验证. 附上html <form id="ValidataForm" ...

  10. 《计算机存储与外设》 1Cache存储器与虚拟存储器

    初读这本书,是2020年3,4月吧,以前学的大多数处理器,balabala的,虽然也有介绍储存器的,但总是不是很详细,主要还是关注cpu等计算部件或者总线等事物,就如同这本书中所写,人们往往可以很清楚 ...