itext7学习笔记——第1章实践&example
来源:互联网 发布:手机电信网络gprs和wap 编辑:程序博客网 时间:2024/05/20 15:12
例子1:Hello World
最简单的例子,就是向pdf中插入Hello World。编辑PDF的通用顺序:
代码如下:
import com.itextpdf.kernel.pdf.PdfDocument;import com.itextpdf.kernel.pdf.PdfWriter;import com.itextpdf.layout.Document;import com.itextpdf.layout.element.Paragraph;import java.io.File;import java.io.IOException;/** * Simple Hello World example. */public class C01E01_HelloWorld { public static final String DEST = "results/chapter01/hello_world.pdf"; public static void main(String args[]) throws IOException { File file = new File(DEST); file.getParentFile().mkdirs(); //创建目录 new C01E01_HelloWorld().createPdf(DEST); //生成文件 } public void createPdf(String dest) throws IOException { //Initialize PDF writer PdfWriter writer = new PdfWriter(dest); //Initialize PDF document PdfDocument pdf = new PdfDocument(writer); // Initialize document Document document = new Document(pdf); //Add paragraph to the document document.add(new Paragraph("Hello World!")); //Close document document.close(); }
例子2:插入列表
接下来几个例子就直接贴代码,如果不清楚的可以查看之前的第1章内容:
import com.itextpdf.io.font.FontConstants;import com.itextpdf.kernel.font.PdfFont;import com.itextpdf.kernel.font.PdfFontFactory;import com.itextpdf.kernel.pdf.PdfDocument;import com.itextpdf.kernel.pdf.PdfWriter;import com.itextpdf.layout.Document;import com.itextpdf.layout.element.List;import com.itextpdf.layout.element.ListItem;import com.itextpdf.layout.element.Paragraph;import java.io.File;import java.io.IOException;/** * Simple List example. */public class C01E02_RickAstley { public static final String DEST = "results/chapter01/rick_astley.pdf"; public static void main(String args[]) throws IOException { File file = new File(DEST); file.getParentFile().mkdirs(); //创建目录 new C01E02_RickAstley().createPdf(DEST); //生成文件 } public void createPdf(String dest) throws IOException { //Initialize PDF writer PdfWriter writer = new PdfWriter(dest); //Initialize PDF document PdfDocument pdf = new PdfDocument(writer); // Initialize document Document document = new Document(pdf); // Create a PdfFont PdfFont font = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN); // Add a Paragraph document.add(new Paragraph("iText is:").setFont(font)); // Create a List List list = new List() .setSymbolIndent(12) .setListSymbol("\u2022") .setFont(font); // Add ListItem objects list.add(new ListItem("Never gonna give you up")) .add(new ListItem("Never gonna let you down")) .add(new ListItem("Never gonna run around and desert you")) .add(new ListItem("Never gonna make you cry")) .add(new ListItem("Never gonna say goodbye")) .add(new ListItem("Never gonna tell a lie and hurt you")); // Add the list document.add(list); //Close document document.close(); }
例子3:插入图片
import com.itextpdf.io.image.ImageDataFactory;import com.itextpdf.kernel.pdf.PdfDocument;import com.itextpdf.kernel.pdf.PdfWriter;import com.itextpdf.layout.Document;import com.itextpdf.layout.element.Image;import com.itextpdf.layout.element.Paragraph;import java.io.File;import java.io.IOException;/** * Simple image example. */public class C01E03_QuickBrownFox { public static final String DOG = "src/main/resources/img/dog.bmp"; public static final String FOX = "src/main/resources/img/fox.bmp"; public static final String DEST = "results/chapter01/quick_brown_fox.pdf"; public static void main(String args[]) throws IOException { File file = new File(DEST); file.getParentFile().mkdirs(); new C01E03_QuickBrownFox().createPdf(DEST); } public void createPdf(String dest) throws IOException { //Initialize PDF writer PdfWriter writer = new PdfWriter(dest); //Initialize PDF document PdfDocument pdf = new PdfDocument(writer); // Initialize document Document document = new Document(pdf); // Compose Paragraph Image fox = new Image(ImageDataFactory.create(FOX)); Image dog = new Image(ImageDataFactory.create(DOG)); Paragraph p = new Paragraph("The quick brown ") .add(fox) .add(" jumps over the lazy ") .add(dog); // Add Paragraph to document document.add(p); //Close document document.close(); }}
例子4:根据CSV生成表格
/** * Created by CuteKe on 2017/7/10. */import com.itextpdf.io.font.FontConstants;import com.itextpdf.kernel.font.PdfFont;import com.itextpdf.kernel.font.PdfFontFactory;import com.itextpdf.kernel.geom.PageSize;import com.itextpdf.kernel.pdf.PdfDocument;import com.itextpdf.kernel.pdf.PdfWriter;import com.itextpdf.layout.Document;import com.itextpdf.layout.element.Cell;import com.itextpdf.layout.element.Paragraph;import com.itextpdf.layout.element.Table;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.util.StringTokenizer;/** * Simple table example. */public class C01E04_UnitedStates { public static final String DATA = "src/main/resources/data/united_states.csv"; public static final String DEST = "results/chapter01/united_states.pdf"; public static void main(String args[]) throws IOException { File file = new File(DEST); file.getParentFile().mkdirs(); new C01E04_UnitedStates().createPdf(DEST); } public void createPdf(String dest) throws IOException { //Initialize PDF writer PdfWriter writer = new PdfWriter(dest); //Initialize PDF document PdfDocument pdf = new PdfDocument(writer); // Initialize document Document document = new Document(pdf, PageSize.A4.rotate()); document.setMargins(20, 20, 20, 20); PdfFont font = PdfFontFactory.createFont(FontConstants.HELVETICA); PdfFont bold = PdfFontFactory.createFont(FontConstants.HELVETICA_BOLD); Table table = new Table(new float[]{4, 1, 3, 4, 3, 3, 3, 3, 1}); table.setWidthPercent(100); BufferedReader br = new BufferedReader(new FileReader(DATA)); String line = br.readLine(); process(table, line, bold, true); while ((line = br.readLine()) != null) { process(table, line, font, false); } br.close(); document.add(table); //Close document document.close(); } public void process(Table table, String line, PdfFont font, boolean isHeader) { StringTokenizer tokenizer = new StringTokenizer(line, ";"); while (tokenizer.hasMoreTokens()) { if (isHeader) { table.addHeaderCell(new Cell().add(new Paragraph(tokenizer.nextToken()).setFont(font))); } else { table.addCell(new Cell().add(new Paragraph(tokenizer.nextToken()).setFont(font))); } } }}
Example代码下载
本章代码可在如下地址下载(IDEA工程):iText7——第一章源代码工程
阅读全文
2 0
- itext7学习笔记——第1章实践&example
- itext7学习笔记——第2章实践&example
- itext7学习笔记——第3章实践&example
- itext7学习笔记——第4章实践&example
- itext7学习笔记——第5章实践&example
- itext7学习笔记——第6章实践&example
- itext7学习笔记——第7章实践&example
- itext7学习笔记——第2章
- itext7学习笔记——第3章
- itext7学习笔记——第4章
- itext7学习笔记——第5章
- itext7学习笔记——第6章
- itext7学习笔记——第7章
- itext7基础知识——第1章
- itext7学习笔记杂谈系列1——添加新的页面和新的AcroForm
- itext7学习笔记杂谈系列2——在itext7中添加中文(其他字体)和字体相关事
- 【学习笔记】《深入PHP - 面向对象、模式与实践》(第3版)——第4章 高级特性
- 【学习笔记】《深入PHP - 面向对象、模式与实践》(第3版)——第5章 对象工具
- Android 遇到方法数上限65536后记录总结
- C++公共子序列
- java配置环境变量
- 关于CC2538 zigbee芯片刷成砖的解决方法
- 轻松搞定|将PHP和Couchbase应用部署为Docker
- itext7学习笔记——第1章实践&example
- 【模板】上下界网络流
- 浅析Python中“if __name__ == __main__”的意义
- 生产者-消费者问题及C语言实现
- 根据两点的经纬度计算其距离
- libsvm中OC-SVM 调参问题
- 记一次rsyslog日志记录失败的解决过程
- Ubuntu 14.04 中 svn学习
- 委托,事件,回调,匿名函数与Lambda表达式详解