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教程_itext的使用方法_iava使用itext实现pdh的输出.doc”文档,为您详细解析这一过程。 首先,我们需要了解iText的基本用法。iText是用Java...
iText 是一个强大的Java库,专门用于创建和修改PDF文档。在PDF文档中,目录(或书签)是用户友好的导航工具,可以帮助读者快速跳转到特定章节或页面。本篇文章将深入探讨如何使用iText来生成PDF的目录。 首先,理解...
iText 是一个强大的 Java 类库,专为生成和编辑PDF文档而设计。它以其灵活性和易用性在开发社区中广受欢迎。通过iText,开发者可以轻松创建包含文本、图像、表格等各种元素的PDF文件。以下是一些关于如何使用iText...
3. **PDF表格自动分页**: 在生成PDF文档时,如果一个表格太长以至于无法在一页内完全显示,iTextPDF可以自动将其分页。通过调整表格属性,如行高、列宽,以及设置分页策略,可以确保表格在每一页上都保持完整的结构...
在这个场景中,我们将探讨如何使用iTextPDF来根据模板生成包含表单、表格、条形码和二维码的PDF文档。以下是一个详细的步骤和知识点介绍: 1. **引入iTextPDF库** 首先,你需要在你的项目中添加iTextPDF依赖。如果...
在Android平台上,生成和读取PDF文件是一项常见的需求,特别是在数据导出、报告生成或文档共享等场景。iText是一个强大的开源库,它允许开发者在Java和.NET环境中创建、编辑和处理PDF文档。在这个场景中,我们将探讨...
Itext库基于PDF规范,它提供了丰富的API来创建PDF文档,包括添加文本、图像、表格等元素。在默认设置下,Itext可能会对英文字符进行换行处理,但对中文字符可能无法正确识别其间的单词边界,导致中文文本连续显示而...
`iText`提供了强大的功能来实现这一需求,让我们深入了解一下如何使用iText库来输出PDF中的表格。 首先,我们需要了解`PdfPTable`类,它是iText中用于创建表格的核心对象。`PdfPTable`允许我们定义表格的列数、行数...
IText是一款广泛使用的Java库,专门用于创建和编辑PDF及Word文档。在本文中,我们将深入探讨如何利用IText库生成这两种格式的文档,并通过实际的源码示例来理解其工作原理。 首先,让我们从PDF(Portable Document ...
Itext提供了一系列API,可以方便地创建PDF文档,包括添加文本、图像、表格、超链接等元素。它可以处理PDF文档的各种复杂性,比如页面布局、样式设置、数字签名等。通过Itext,你可以构建完全自定义的PDF文档,满足...
通过使用iText,我们可以轻松地生成PDF文档,包括图片、文字、表格等多种元素。本文将详细介绍如何使用iText生成PDF图片文档。 iText基本概念 在开始之前,让我们首先了解一下iText的基本概念。iText是一个基于...
Itext是一个流行的Java库,用于创建和修改PDF文档。本文将深入探讨如何使用Itext来输出复杂的PDF表格,并实现样式参数的外部配置化,以提高代码的可维护性和灵活性。 首先,`Itext`库提供了丰富的API来构建PDF表格...
本教程将详细介绍如何使用`iText`将图片转换为高清PDF,并提供一个无坑版的demo示例。 首先,我们需要理解`iText`库的核心概念。`iText`提供了丰富的API,允许开发者创建复杂的PDF文档,包括插入文本、图像、表格等...
pdf凉字不显示,由于生成iText插件生成pdf的时候中文会显示不出来,遇到过的是"凉"字,查到是字体库的原因,网上下载字体库msyh.ttc,生成的时候指定字体库,就可以解决了,小bug一枚。注意有个bug,获取字库路径时...
本教程将探讨如何利用iText库在Spring Boot应用中从HTML页面生成PDF,并进行一系列的定制化操作,如添加页眉、页码、水印、目录以及二维码。 首先,iText是一个强大的Java库,专门用于创建和编辑PDF文档。它提供了...
用itext方法生成 与Word一样的目录
它提供了一系列API,使得开发者可以方便地实现PDF的生成、添加文本、图像、表格、链接等操作。在Java项目中,你可以通过添加iText的jar包到类路径来引入这个库。 接下来,我们关注PDF签章功能。PDF签章不仅仅是简单...
总结来说,IText是Java中一个强大且灵活的PDF生成库,通过它可以轻松地创建包含文字、图片和表格的PDF文档。通过理解并实践提供的Demo,你将能够熟练地运用IText进行PDF的生成工作。记住,持续学习和更新库的版本以...
在实际应用中,你可以根据需求创建更复杂的布局,比如表格、图片、链接等,iText提供了丰富的API供开发者使用。 生成PDF的过程中,我们需要注意的是编码问题,尤其是处理中文字符时。在使用`FileOutputStream`时,...