• Java添加条形码到PDF表格


    条码的应用已深入生活和工作的方方面面。在处理条码时,常需要和各种文档格式相结合。当需要在文档中插入、编辑或者删除条码时,可借助于一些专业的类库工具来实现。本文,以操作PDF文件为例,介绍如何在编辑表格时,向单元格中添加条形码。

     


     

    【程序环境】

    本次功能测试中,使用 Free Spire.PDF for Java

    实现功能的大致思路:生成条形码,将条形码保存为图片,然后在PDF中的表格单元格中插入条码图片。

    Spire.PDF for Java 中的Spire.Pdf.Barcode Package提供了多种Barcode类型,可用于创建不同类型的barcode,如图:

    jar导入:

    可按照如下方法来导入Spire.Pdf.jar 版本:5.1.0

    方法1:将 Free Spire.PDF for Java 包下载到本地,解压,找到lib文件夹下的Spire.Pdf.jar文件。然后在IDEA中打开“Project Structure”界面,然后执行如图步骤来手动导入本地路径下的jar文件:

    方法2:通过Maven仓库下载导入,如下配置pom.xml:

    复制代码
    <repositories>
            <repository>
                <id>com.e-iceblue</id>
                <name>e-iceblue</name>
                <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
            </repository>
    </repositories>
    <dependencies>
        <dependency>
            <groupId>e-iceblue</groupId>
            <artifactId>spire.pdf.free</artifactId>
            <version>5.1.0</version>
        </dependency>
    </dependencies>
    复制代码

    下面,通过Java代码示例展示如何实现添加条形码到PDF中的表格。

     


     

    【代码示例】

    Java

    复制代码
    import com.spire.pdf.*;
    import com.spire.pdf.barcode.PdfCodabarBarcode;
    import com.spire.pdf.barcode.TextLocation;
    import com.spire.pdf.graphics.PdfBrushes;
    import com.spire.pdf.graphics.PdfImage;
    import com.spire.pdf.graphics.PdfRGBColor;
    import com.spire.pdf.graphics.PdfTrueTypeFont;
    import com.spire.pdf.grid.PdfGrid;
    
    import javax.imageio.ImageIO;
    import java.awt.*;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    
    public class AddBarcodeToTable {
        public static void main(String[] args)throws IOException {
            //创建PDF文档
            PdfDocument pdf = new PdfDocument();
            PdfPageBase page = pdf.getPages().add();
    
            //创建PdfGrid类的表格对象
            PdfGrid grid = new PdfGrid();
            grid.getStyle().setCellPadding(new PdfPaddings(5,5,3,3));
            grid.getStyle().setFont(new PdfTrueTypeFont(new Font("Arial Unicode MS", Font.PLAIN,10), true));
            grid.getStyle().setTextBrush(PdfBrushes.getBlack());
    
            //定义数据
            String[] data = {"产品代码;批次;交易单号;订单条码",
                    "A1024;一批次;ORD10610; ;",
            };
            String[][] dataSource = new String[data.length][];
            for (int i = 0; i < data.length; i++) {
                dataSource[i] = data[i].split("[;]");
            }
            //填充数据到表格
            grid.setDataSource(dataSource);
    
            //创建条形码
            PdfCodabarBarcode barcode = new PdfCodabarBarcode("00:12-3456/7890");
            barcode.setBarcodeToTextGapHeight(1f);
            barcode.setNarrowBarWidth(2);
            barcode.setEnableCheckDigit(true);
            barcode.setShowCheckDigit(true);
            barcode.setTextDisplayLocation(TextLocation.Bottom);
            PdfRGBColor blue = new PdfRGBColor(Color.blue);
            barcode.setTextColor(blue);
    
            //将条码保存为.png图片并添加到单元格
            BufferedImage bufferedImage = barcode.toImage();
            ImageIO.write(bufferedImage, "png", new File("F:\\IDEAProject\\Table_PDF\\CODE128.png"));
            grid.getRows().get(1).getCells().get(3).getStyle().setBackgroundImage(PdfImage.fromFile("CODE128.png"));
            grid.getRows().get(1).setHeight(50f);
            grid.getColumns().get(3).setWidth(120f);
    
            //绘制表格到页面指定位置
            grid.draw(page, 50, 100);
    
            //保存PDF文档
            pdf.saveToFile("AddBarcodeToTable.pdf",FileFormat.PDF);
            pdf.dispose();
        }
    }
    复制代码

    文档效果:

     

     

    ★ 阅读推荐:C#/VB.NET 在PDF表格中添加条形码

     

    —END—

     

  • 相关阅读:
    马铃薯甲虫的成虫和幼虫数据集(YOLO检测)
    此处不允许使用特性 setup 报错
    不要给我发土味情话啦!🐷
    智能abc是什么输入法:win10可用的智能abc输入法免费下载
    发现4个神奇的软件,个个暗藏惊喜,不占内存亲测好评
    [项目管理-32]:项目经理六阶段职业成长之路: 达克效应=>短板理论=>刻意练习=>长版板子理论=>精进=>布道
    java计算机毕业设计汇美食电子商城MyBatis+系统+LW文档+源码+调试部署
    Xshell连接Ubuntu详细过程
    第十二章 类和对象——封装
    OAuth2:资源服务器
  • 原文地址:https://www.cnblogs.com/Yesi/p/16351636.html