`
lucifer_li6
  • 浏览: 8250 次
社区版块
存档分类
最新评论

初学Itext 生成PDF 表格,条形码(一维),图片

阅读更多

package com.itext.pdf.barcode;

import java.io.FileOutputStream;

import com.itextpdf.text.Document;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.Image;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.Barcode128;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;

public class Test {

public static void main(String[] args) throws Exception{

Document document = new Document(PageSize.A4,0,0,0,0);
PdfWriter writer=null;
try{

//支持中文
BaseFont bfChinese = BaseFont.createFont("STSong-Light","UniGB-UCS2-H",false);

//设置字体
Font fontsize4 = new Font(bfChinese,4,Font.NORMAL);
Font fontsize5 = new Font(bfChinese,5,Font.BOLD);
Font fontsize6 = new Font(bfChinese,6,Font.BOLD);
Font fontsize10 = new Font(bfChinese,10,Font.BOLD);
Font fontsize8 = new Font(bfChinese,8,Font.BOLD);


writer = PdfWriter.getInstance(document, new FileOutputStream("H:/Projece_demo/test1.pdf"));

document.open();

//主表格
PdfPTable mainTable = new PdfPTable(2);    
mainTable.setTotalWidth(320);
mainTable.setLockedWidth(true);

//默认无边框
mainTable.getDefaultCell().setBorder(PdfPCell.NO_BORDER);



//表格靠左对齐
mainTable.setHorizontalAlignment(Element.ALIGN_LEFT);

//****************左表格begin*********************S
PdfPTable leftTable = new PdfPTable(1);

leftTable.getDefaultCell().setBorder(PdfPCell.NO_BORDER);

leftTable.setHorizontalAlignment(Element.ALIGN_LEFT);


//==================左表格上部分 begin=================

PdfPTable topTable = new PdfPTable(2);
topTable.getDefaultCell().setBorder(PdfPCell.NO_BORDER);

topTable.getDefaultCell().setBorder(PdfPCell.NO_BORDER);

topTable.setHorizontalAlignment(Element.ALIGN_LEFT);

//设置表格宽度
topTable.setTotalWidth(130);

//锁定表格宽度
topTable.setLockedWidth(true);

topTable.addCell(new Paragraph("Return Mail Address : \nMAIL RETURNS PO BOX\n694 HAYES UB3 9PB\n\nUNITED KINGDOM",fontsize4));

//===========左上角字符end=================


//===============image begin===============

Image img = Image.getInstance("H:/Projece_demo/logo.gif");

//自动调整图片适应单元格
topTable.addCell(new PdfPCell(img,true));

//===============image end===============

leftTable.addCell(topTable);
//==================左表格上部分end=================



//===========中间表格begin============
PdfPTable amongTable = new PdfPTable(1);
amongTable.getDefaultCell().setBorder(PdfPCell.NO_BORDER);

amongTable.addCell(new Paragraph("Airmail",fontsize8));
amongTable.addCell(new Paragraph("Attn:Reinhard Scheffler            DE",fontsize10));
amongTable.addCell(new Paragraph("Adds:Hoiminger Str.4",fontsize8));
amongTable.addCell(new Paragraph("Havetoft",fontsize8));
amongTable.addCell(new Paragraph("24873",fontsize8));
amongTable.addCell(new Paragraph("GERMANY"));

//将中间部分添加到左表格中
leftTable.addCell(amongTable);

//==========中间部分end ============



//===== 下部分begin=================

//下部分的表格
PdfPTable underTable = new PdfPTable(2);
underTable.getDefaultCell().setBorder(PdfPCell.NO_BORDER);

//=========添加条形码begin===================
PdfContentByte cd = writer.getDirectContent();

Barcode128 code128 = new Barcode128();

code128.setCode("SHA201204A7073");

Image image128 = code128.createImageWithBarcode(cd, null, null);

//新建列
PdfPCell barcodeCell = new PdfPCell(image128);
barcodeCell.setColspan(2); //垮2列
barcodeCell.setHorizontalAlignment(Element.ALIGN_CENTER);
barcodeCell.setBorder(PdfPCell.NO_BORDER);

underTable.addCell(barcodeCell);
//=========添加条形码end===================

underTable.addCell(new Paragraph("LYTPY",fontsize4));
underTable.addCell(new Paragraph("DC065653]  RefNo:SHA201204A7073",fontsize4));
underTable.addCell(new Paragraph("CS:S0283  ",fontsize4));

PdfPCell dateCell = new PdfPCell(new Paragraph("07/19 17:34:26",fontsize4));
dateCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
dateCell.setBorder(PdfPCell.NO_BORDER);

underTable.addCell(dateCell);

//将下部分添加到左表格
leftTable.addCell(underTable);

//=====下部分end====================

//****************左表格end****************



//****************右表格begin****************
PdfPTable rightTale =new PdfPTable(3);

rightTale.getDefaultCell().setBorder(PdfPCell.NO_BORDER);

rightTale.setHorizontalAlignment(Element.ALIGN_LEFT);


PdfPCell cell1 = new PdfPCell(new Paragraph("配货单  (贴到包装外,邮政必扣件)",fontsize8));
cell1.setColspan(3);
cell1.setHorizontalAlignment(Element.ALIGN_CENTER);
cell1.setBorder(PdfPCell.NO_BORDER);

PdfPCell cell2 = new PdfPCell(new Paragraph("4PX联邮通平邮",fontsize5));
cell2.setColspan(3);
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
cell2.setBorder(PdfPCell.NO_BORDER);

PdfPCell cell3= new PdfPCell(image128);
cell3.setColspan(3);
cell3.setHorizontalAlignment(Element.ALIGN_CENTER);
cell3.setBorder(PdfPCell.NO_BORDER);



rightTale.addCell(cell1);
rightTale.addCell(cell2);
rightTale.addCell(cell3);

//============配货信息begin=========================
rightTale.addCell(new Paragraph("序号",fontsize6));
rightTale.addCell(new Paragraph("配货信息",fontsize6));
rightTale.addCell(new Paragraph("数量",fontsize6));


rightTale.addCell(new Paragraph("1",fontsize6));
rightTale.addCell(new Paragraph("Computer Parts",fontsize6));
rightTale.addCell(new Paragraph("1",fontsize6));

//============配货信息end=========================


//****************右表格end****************

//组装表格
mainTable.addCell(leftTable);
mainTable.addCell(rightTale);

//将表格写入PDF中

document.add(mainTable);
System.out.println("SUCCESS");

}catch (Exception e) {
e.printStackTrace();
}
document.close();


}
}

 

分享到:
评论

相关推荐

    itext生成pdf文件-表格

    本文将深入探讨iText如何生成包含表格的PDF文件,同时结合提供的“itext教程_itext的使用方法_iava使用itext实现pdh的输出.doc”文档,为您详细解析这一过程。 首先,我们需要了解iText的基本用法。iText是用Java...

    itext 生成pdf 目录

    iText 是一个强大的Java库,专门用于创建和修改PDF文档。在PDF文档中,目录(或书签)是用户友好的导航工具,可以帮助读者快速跳转到特定章节或页面。本篇文章将深入探讨如何使用iText来生成PDF的目录。 首先,理解...

    使用iText生成PDF.doc

    iText 是一个强大的 Java 类库,专为生成和编辑PDF文档而设计。它以其灵活性和易用性在开发社区中广受欢迎。通过iText,开发者可以轻松创建包含文本、图像、表格等各种元素的PDF文件。以下是一些关于如何使用iText...

    itextpdf 导出pdf 表格 自动分页中文 目录

    3. **PDF表格自动分页**: 在生成PDF文档时,如果一个表格太长以至于无法在一页内完全显示,iTextPDF可以自动将其分页。通过调整表格属性,如行高、列宽,以及设置分页策略,可以确保表格在每一页上都保持完整的结构...

    itextpdf按模版导出PDF(表单,表格,条码,二维码)

    在这个场景中,我们将探讨如何使用iTextPDF来根据模板生成包含表单、表格、条形码和二维码的PDF文档。以下是一个详细的步骤和知识点介绍: 1. **引入iTextPDF库** 首先,你需要在你的项目中添加iTextPDF依赖。如果...

    Android使用iText生成pdf并读取pdf内容

    在Android平台上,生成和读取PDF文件是一项常见的需求,特别是在数据导出、报告生成或文档共享等场景。iText是一个强大的开源库,它允许开发者在Java和.NET环境中创建、编辑和处理PDF文档。在这个场景中,我们将探讨...

    解决Itext生成PDF中文不换行的jar

    Itext库基于PDF规范,它提供了丰富的API来创建PDF文档,包括添加文本、图像、表格等元素。在默认设置下,Itext可能会对英文字符进行换行处理,但对中文字符可能无法正确识别其间的单词边界,导致中文文本连续显示而...

    iText输出pdf表格

    `iText`提供了强大的功能来实现这一需求,让我们深入了解一下如何使用iText库来输出PDF中的表格。 首先,我们需要了解`PdfPTable`类,它是iText中用于创建表格的核心对象。`PdfPTable`允许我们定义表格的列数、行数...

    使用IText生成PDF和WORD文档

    IText是一款广泛使用的Java库,专门用于创建和编辑PDF及Word文档。在本文中,我们将深入探讨如何利用IText库生成这两种格式的文档,并通过实际的源码示例来理解其工作原理。 首先,让我们从PDF(Portable Document ...

    freemarker+itext生成PDF

    Itext提供了一系列API,可以方便地创建PDF文档,包括添加文本、图像、表格、超链接等元素。它可以处理PDF文档的各种复杂性,比如页面布局、样式设置、数字签名等。通过Itext,你可以构建完全自定义的PDF文档,满足...

    itext生成PDF图片文档

    通过使用iText,我们可以轻松地生成PDF文档,包括图片、文字、表格等多种元素。本文将详细介绍如何使用iText生成PDF图片文档。 iText基本概念 在开始之前,让我们首先了解一下iText的基本概念。iText是一个基于...

    Itext输出复杂PDF表格样式参数外部配置化

    Itext是一个流行的Java库,用于创建和修改PDF文档。本文将深入探讨如何使用Itext来输出复杂的PDF表格,并实现样式参数的外部配置化,以提高代码的可维护性和灵活性。 首先,`Itext`库提供了丰富的API来构建PDF表格...

    itext将图片生成PDF(高清版)

    本教程将详细介绍如何使用`iText`将图片转换为高清PDF,并提供一个无坑版的demo示例。 首先,我们需要理解`iText`库的核心概念。`iText`提供了丰富的API,允许开发者创建复杂的PDF文档,包括插入文本、图像、表格等...

    iText生成pdf解决中文不显示

    pdf凉字不显示,由于生成iText插件生成pdf的时候中文会显示不出来,遇到过的是"凉"字,查到是字体库的原因,网上下载字体库msyh.ttc,生成的时候指定字体库,就可以解决了,小bug一枚。注意有个bug,获取字库路径时...

    springboot使用itext生成pdf并保存到本地

    本教程将探讨如何利用iText库在Spring Boot应用中从HTML页面生成PDF,并进行一系列的定制化操作,如添加页眉、页码、水印、目录以及二维码。 首先,iText是一个强大的Java库,专门用于创建和编辑PDF文档。它提供了...

    itext生成pdf目录

    用itext方法生成 与Word一样的目录

    itext生成pdf并通过证书进行签章

    它提供了一系列API,使得开发者可以方便地实现PDF的生成、添加文本、图像、表格、链接等操作。在Java项目中,你可以通过添加iText的jar包到类路径来引入这个库。 接下来,我们关注PDF签章功能。PDF签章不仅仅是简单...

    java使用IText导出PDF(包含图片、表格、文字等等Demo和依赖包)

    总结来说,IText是Java中一个强大且灵活的PDF生成库,通过它可以轻松地创建包含文字、图片和表格的PDF文档。通过理解并实践提供的Demo,你将能够熟练地运用IText进行PDF的生成工作。记住,持续学习和更新库的版本以...

    iText生成PDF - 实例

    在实际应用中,你可以根据需求创建更复杂的布局,比如表格、图片、链接等,iText提供了丰富的API供开发者使用。 生成PDF的过程中,我们需要注意的是编码问题,尤其是处理中文字符时。在使用`FileOutputStream`时,...

Global site tag (gtag.js) - Google Analytics