//左、右、上、下页边距
Document doc =new Document(PageSize.A4, 50, 50, 10, 10);
//A4横向
// Document doc = new Document(PageSize.A4.rotate());
PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream("d:/test.pdf"));
//添加footer需要在document.open之前
//页眉
HeaderFooter header = new HeaderFooter(new Phrase("This is a header without a page number"), false);
header.setAlignment(Element.ALIGN_CENTER);
header.setBorder(Rectangle.BOTTOM);//下边框
doc.setHeader(header);
// 页脚
HeaderFooter footer = new HeaderFooter(new Phrase("This is page: "), true);
footer.setAlignment(Element.ALIGN_RIGHT);
footer.setBorder(Rectangle.NO_BORDER);//不要边框
doc.setFooter(footer);
//标题、主题、作者、关键字、装订方式、创建者、生产者、创建日期
doc.addTitle("标题");
doc.addSubject("主题");
doc.addKeywords("关键字");
doc.addAuthor("作者");
doc.addCreator("");
doc.addProducer();
doc.addCreationDate();
doc.addHeader("html_header", "内容");//其中方法addHeader对于PDF文档无效,addHeader仅对html文档有效,用于添加文档的头信息
doc.open();
PdfContentByte cb = writer.getDirectContent();
// 标题字体
BaseFont bfTitle = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);
com.lowagie.text.Font titleFont = new com.lowagie.text.Font(bfTitle, 18, com.lowagie.text.Font.NORMAL);
// 内容字体
BaseFont bfComic = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);
com.lowagie.text.Font font = new com.lowagie.text.Font(bfComic, 9, com.lowagie.text.Font.NORMAL);
Paragraph titleP = new Paragraph("儿童信息 Child Information",titleFont);
titleP.setAlignment(Paragraph.ALIGN_CENTER);
doc.add(titleP);
// 生成条形码
BarcodeEAN codeEAN = new BarcodeEAN();
codeEAN.setCodeType(BarcodeEAN.EAN13);
codeEAN.setCode("9780201615883");
codeEAN.setAltText("9780201615883");
Image imageEAN = codeEAN.createImageWithBarcode(cb, Color.black, Color.blue);
doc.add(new Phrase(new Chunk(imageEAN, 10, 10)));
Barcode128 code = new Barcode128();
code.setCode("9780201615883");
Image code128 =code.createImageWithBarcode(cb, Color.black, Color.blue);
doc.add(new Phrase(new Chunk(code128, 5, -25)));
// 生成4列的表格
PdfPTable table = new PdfPTable(4);
table.setSpacingBefore(10f);//防止与上面文字重叠
table.setWidthPercentage(100);
table.addCell(new Paragraph("Children-id", font));
PdfPCell cell = new PdfPCell(new Paragraph("09140800002", font));
cell.setColspan(3);
table.addCell(cell);
// 添加第二行
table.addCell(new Paragraph("Name(CN)", font));
table.addCell(new Paragraph("党宁生", font));
table.addCell(new Paragraph("Name(EN)", font));
table.addCell(new Paragraph("DANG NING SHENG", font));
// 添加第三行
table.addCell(new Paragraph("Sex(CN)", font));
table.addCell(new Paragraph("男", font));
table.addCell(new Paragraph("Sex(EN)", font));
table.addCell(new Paragraph("MALE", font));
// 添加第四行
table.addCell(new Paragraph("Note", font));
cell = new PdfPCell(new Paragraph("儿童资料", font));
cell.setColspan(3);
table.addCell(cell);
// 添加第五行
table.addCell(new Paragraph("Pictures", font));
Image photo = Image.getInstance("f:/eclipse09.gif");
photo.setAlignment(Image.UNDERLYING);
photo.scaleAbsolute(194,202);
photo.scalePercent(30f);
cell = new PdfPCell(photo);
// cell.addElement(new Paragraph("文字", font));
cell.setColspan(3);
table.addCell(cell);
// 添加第六行
table.addCell(new Paragraph("Barcode", font));
BarcodeDatamatrix bar = new BarcodeDatamatrix();
bar.setOptions(BarcodeDatamatrix.DM_AUTO);
bar.generate("HEnSh0701003-2V1");
cell = new PdfPCell(bar.createImage());
cell.setColspan(3);
table.addCell(cell);
for (PdfPRow row : (ArrayList<PdfPRow>) table.getRows()) {
for (PdfPCell cells : row.getCells()) {
if (cells != null) {
cells.setPadding(10.0f);
}
}
}
doc.add(table);
// 内容为“hello World”、红色、斜体、COURIER字体、尺寸20的一个块
Chunk chunk = new Chunk("Hello World", FontFactory.getFont(FontFactory.COURIER, 20, com.lowagie.text.Font.ITALIC, new Color(255, 0, 0)));
doc.add(chunk);
//一个段落有一个且仅有一个间距,如果你添加了一个不同字体的短句或块,原来的间距仍然有效,你可以通过SetLeading来改变间距,但是段落中所有内容将使用新的中的间距
Paragraph p1 = new Paragraph(new Chunk("This is my first paragraph.", FontFactory.getFont(FontFactory.HELVETICA, 12)));
p1.add("you can add strings, "); p1.add(new Chunk("you can add chunks ")); p1.add(new Phrase("or you can add phrases."));
doc.add(p1);
//如果我们使用FontFactory来创建字体,字体风格不会被延续,因为FontFactory使用了另外的技术构建一个字体:
Phrase myPhrase = new Phrase("Hello 1bis! ", FontFactory.getFont(FontFactory.TIMES_BOLD, 8, com.lowagie.text.Font.BOLD));
myPhrase.add(new Phrase("some other font ", FontFactory.getFont(FontFactory.HELVETICA, 8, com.lowagie.text.Font.ITALIC)));
myPhrase.add(new Phrase("This is the end of the sentence.\n", FontFactory.getFont(FontFactory.TIMES_ROMAN, 8, com.lowagie.text.Font.ITALIC)));
doc.add(myPhrase);
//锚点
Anchor anchor = new Anchor("website", FontFactory.getFont(FontFactory.HELVETICA, 12, com.lowagie.text.Font.UNDERLINE, new Color(0, 0, 255)));
anchor.setReference("http://itextsharp.sourceforge.net");
anchor.setName("website");
doc.add(anchor);
//如果你想添加内部链接,你需要选择该链接不同的名称,就象你相位在HTML中利用名称作为锚点一样。为达到该目的,你需要添加一个“#”。
Anchor anchor1 = new Anchor("This is an internal link");
anchor1.setName("link1");
Anchor anchor2 = new Anchor("Click here to jump to the internal link");
anchor2.setName("#link1");
doc.add(anchor1);
doc.add(anchor2);
// 列表
// 通过类List 和ListItem,你可以添加列表到PDF文件中,对于列表你还可以选择是否排序。
List list = new List(true, 20);
list.add(new ListItem("First line"));
list.add(new ListItem("The second line is longer to see what happens once the end of the line is reached. Will it start on a new line?"));
list.add(new ListItem("Third line"));
doc.add(list);
// 文本注释
Annotation an = new Annotation("authors","Maybe it's because I wanted to be an author myself that I wrote iText.");
doc.add(an);
//章节和区域
Paragraph cTitle = new Paragraph("This is chapter 1");
Chapter chapter = new Chapter(cTitle, 1);
Paragraph sTitle = new Paragraph("This is section 1 in chapter 1");
Section section = chapter.addSection(sTitle, 1);
doc.add(section);
//创建了一个4行4列的表格然后添加一些单元格到随机的位置上
Table aTable = new Table(4,4);
// aTable.setSpacing(10);
aTable.setAutoFillEmptyCells(true);//将AutoFillEmptyCells属性设置为true,这将自动、默认的单元格布局填充空的单元格
aTable.addCell("2.2", new Point(2,2));
aTable.addCell("3.3", new Point(3,3));
aTable.addCell("2.1", new Point(2,1));
Cell cell2 = new Cell("1.3");
//对齐方式
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
cell2.setVerticalAlignment(Element.ALIGN_MIDDLE);
cell2.setBorderColor(new Color(255, 0, 0));
cell2.setBackgroundColor(new Color(0xC0, 0xC0, 0xC0));
aTable.addCell(cell2, new Point(1,3));
doc.add(aTable);
//本地转向
Chunk localgoto = new Chunk("this word", FontFactory.getFont(FontFactory.HELVETICA, 12, com.lowagie.text.Font.NORMAL, new Color(0, 0, 255))).setLocalGoto("test");
Chunk destination = new Chunk("local destination", FontFactory.getFont(FontFactory.HELVETICA, 12, com.lowagie.text.Font.NORMAL, new Color(0, 255, 0))).setLocalDestination("test");
doc.add(localgoto);
doc.add(destination);
//异地转向
Chunk chunk2 = new Chunk("anchor", FontFactory.getFont(FontFactory.HELVETICA, 12)).setAnchor(new URL("http://www.lowagie.com/iText/"));
doc.add(chunk2);
Chunk chunk3 = new Chunk("jump", FontFactory.getFont(FontFactory.HELVETICA, 12, com.lowagie.text.Font.ITALIC)).setRemoteGoto("test.pdf", 3);
doc.add(chunk3);
// 有几种办法可以缩放图片:
// public void scaleAbsolute(int newWidth, int newHeight)
// public void scalePercent(int percent)
// public void scalePercent(int percentX, int percentY)
// public void scaleToFit(int fitWidth, int fitHeight)
// 旋转
// 可以通过下面的方法旋转图片
// public void setRotation(double r)
// 使用包含图片信息的数组来得到图片的实例
// public static Image getInstance(byte[] img)
//新的页面
doc.newPage();
/**细长的浅黄色背景的页面**/
Rectangle pageSize = new Rectangle(595, 842);
pageSize.setBackgroundColor(new Color(0xFF, 0xFF, 0xDE));
doc.setPageSize(pageSize);
// 插入图片
doc.newPage();
Image image1 = Image.getInstance("f:/forecolor.gif");
image1.setAlignment(Image.ALIGN_CENTER);
image1.scaleToFit(PageSize.A4.getHeight(), PageSize.A4.getWidth());
doc.add(image1);
doc.close();
分享到:
相关推荐
Itext提供了一系列的API,可以方便地创建PDF文档的各个元素,如文本、图像、表格等。在项目中引入Itext依赖,通常使用Maven或Gradle进行管理,例如在Maven的pom.xml中添加如下依赖: ```xml <groupId>...
在实际开发中,使用iText创建PDF时,首先需要导入iText库,然后创建`Document`对象来表示PDF文档,接着使用`PdfWriter`将`Document`对象与输出流关联。通过`Paragraph`、`Font`、`Chunk`等类添加内容,可以控制文本...
2. **创建PDF文档**:使用iText生成PDF的第一步是创建一个PdfWriter实例,然后基于该实例创建一个Document对象。例如: ```java Document document = new Document(); PdfWriter.getInstance(document, new ...
本文将深入探讨iText如何生成包含表格的PDF文件,同时结合提供的“itext教程_itext的使用方法_iava使用itext实现pdh的输出.doc”文档,为您详细解析这一过程。 首先,我们需要了解iText的基本用法。iText是用Java...
1. **创建PdfWriter对象**:首先,你需要创建一个`PdfWriter`实例,它将负责将PDF内容写入文件。这通常涉及到创建一个`Document`对象,并将其与`PdfWriter`关联起来。 ```java Document document = new Document...
1. **创建PDF文档**:使用`Document`类作为PDF文档的容器,通过`Document.open()`方法开启文档,然后使用`Paragraph`、`Chunk`等对象添加文本内容,最后调用`Document.close()`关闭文档。 2. **字体管理**:iText...
本主题涉及的是如何使用Java和iTextPDF库来将一个大PDF文件拆分成多个指定大小的文件。首先,我们需要理解PDF文件的结构以及iTextPDF库的基本操作。 iTextPDF是一个强大的Java库,它提供了丰富的API来创建、修改和...
iText是一款广泛使用的Java库,专门...通过阅读“iText创建pdf中文文档.doc”提供的详细资源,你可以深入了解如何利用iText的特性和方法来创建自定义的PDF文档。学习和掌握iText,将使你在处理PDF文档时更加得心应手。
以下是一个简单的示例,展示如何使用ITEXT创建PDF文件: ```java import com.itextpdf.text.Document; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfWriter; import java.io....
无论是从头创建PDF文档,还是编辑现有的PDF文件,iText都提供了强大的支持。 #### 二、iText的基本构建块 ##### 2.1 基础构建块概述 在第二章中,作者介绍了iText的基本构建块。这些基础组件是创建PDF文档的核心...
这篇博客 "freemarker+itext生成PDF" 可能详细介绍了如何结合这两者来生成PDF文件,这在报表生成、发票打印或任何需要静态化输出的场景中非常有用。 首先,让我们了解FreeMarker。FreeMarker是一个基于模板的语言,...
- PDF文档的结构:PDF由多个对象组成,如页、字体、图像、注释等,这些对象在PDF文件中以XML式的语法存储。 - 转换PDF:除了基本的创建和编辑功能,iText 7还允许开发者将PDF文档转换为其他格式,例如HTML、XML或...
iText 是一款流行的 Java 和 .NET 平台上的 PDF 文档处理库,用于创建、编辑和操作 PDF 文件。本篇文章将介绍如何使用 iText 创建 PDF 文件,特别是关注如何解决中文显示问题。 首先,我们来看创建一个简单的 PDF ...
《iTextPDF 5.5.13:创建PDF文件的高效工具》 iTextPDF是一款功能强大的Java库,主要用于创建、编辑以及处理PDF文档。版本5.5.13是其历史版本之一,提供了丰富的API和功能,使得开发者能够方便地在Android平台上...
以下是一个简单的例子,展示如何创建一个包含标题和段落的PDF文件: ```java import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Paragraph; import ...
iText提供了一系列API,允许开发者创建PDF文档,添加文本、图像、表格等元素,以及进行更复杂的操作,如签署文档、添加链接和元数据。对于打印PDF文件,iText提供了一个`PdfWriter`类,它能创建一个与现有PDF文件...
在给PDF文件签名的过程中,IText提供了强大的功能,确保了文档的完整性和安全性。PDF签名不仅验证了文档的来源,还可以防止内容被篡改。在本篇中,我们将深入探讨如何使用IText为PDF文件添加数字签名。 首先,了解...
3. **添加中文文本**:在创建PDF文档时,使用创建的字体对象添加中文文本。例如: ```java PdfContentByte canvas = writer.getDirectContent(); ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new ...
2. **创建PDF文档读写对象**:使用`PdfReader`读取源PDF文件,然后用`PdfStamper`创建一个可写对象,允许我们向PDF中添加新的内容。 ```java FileInputStream fis = new FileInputStream("源文件路径"); PdfReader ...
在 Java 开发中,iText 提供了丰富的 API,使得开发者可以方便地在代码中创建 PDF 文件、添加文本、图像、表格、链接等元素,甚至进行数字签名和表单处理。在本项目中,我们看到使用了 iText 7.0.2 版本,这是 iText...