携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情
一、itext生成PDF
在我们日常开发过程中经常需要生成PDF,可以使用itext来生成PDF。itext是开源的用于生成pdf的java类库。通过itext不仅可以生成PDF,还可以对PDF的样式进行设置,还可以利用图片给PDF生成水印、签章等等。本文先介绍生成PDF并进行样式设置,水印等在下一篇文章再介绍。
1、导入依赖
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.11</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
itext-asian 是用于设置PDF字体的。
2、PDF生成
1、创建Document类的对象:
Document document = new Document(PageSize.A4, 100, 100, 100, 100);
以上创建了一个标准A4纸的pdf。其中Document参数分别代表:pageSize-文档页面的大小,后面四个参数分别代表左、右、上、下的页边距。 也可以直接
Document document = new Document(); //默认是A4纸的大小。
可以通过下面方法建立一个纵向的pdf文件。
Document document = new Document(PageSize.A4.rotate());
2、创建一个与document 相关联的writer,可以通过writer将PDF文件写入到一个输出流或者磁盘中
磁盘:
PdfWriter pdfWriter = PdfWriter.getInstance(document,new FileOutputStream("d:/demo.pdf"));
输出流:
ByteArrayOutputStream bao = new ByteArrayOutputStream();
PdfWriter pdfWriter = PdfWriter.getInstance(document, bao);
3、打开流,创建pdf第一页
document.open();
document.newPage();
4、创建段落:可以使用Paragraph创建段落,第一个参数是段落内容,第二个是设置段落字体,关于字体有一个很容易踩的坑,我们单独拿出一章来讲。
Paragraph paragraph=new Paragraph("my first pdf demo",font);
paragraph.setAlignment(int alignment); //设置文字对齐方式的。参数值“1”表示居中对齐;参数值“2”表示靠右对齐,默认是靠左对齐。
paragraph.setSpacingBefore(float spacing);//设置段前行间距。
paragraph.setSpacingAfter(float spacing);// 设置段后行间距。
paragraph.paragraph.setLeading(float fixedLeading);// 设置首行缩进。
paragraph.setIndentationLeft(float indentation);//设置左缩进。
//设置作者
document.addAuthor("duan");
//设置创建日期
document.addCreationDate();
// 设置创建者
document.addCreator("duan.com");
// 设置生产者
document.addProducer();
// 设置关键字
document.addKeywords("duan");
//设置标题
document.addTitle("duan");
//设置主题
document.addSubject("An example to show how attributes can be added to pdf files.");
document.add(paragraph); //往文档中添加段落内容,如有多个段落,可重复按顺序添加
5、关闭文档:文档这个一定不要忘了关,否则会造成资源的浪费。
Document.close();
以上就是使用itext生成pdf的基本内容,这只是最初级的PDF生成,我们还可以利用itext给PDF添加水印、签章等,这些在后面的学习中会慢慢深入。下一篇文章讲一下itext生成pdf修改字体才过的坑。这都是我自己在用的过程中的一些收货,可能有些地方了解的片面,欢迎大家指正。