博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用itext导出PDF的小例子
阅读量:5738 次
发布时间:2019-06-18

本文共 6237 字,大约阅读时间需要 20 分钟。

我这边使用的jar包:

itext-2.1.7.jar

itextasian-1.5.2.jar

 

代码,简单的小例子,导出pdf:

PdfService.java:

package com.cy.service;import java.awt.Color;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import org.springframework.stereotype.Service;import com.lowagie.text.Cell;import com.lowagie.text.Chunk;import com.lowagie.text.Document;import com.lowagie.text.DocumentException;import com.lowagie.text.Element;import com.lowagie.text.Font;import com.lowagie.text.PageSize;import com.lowagie.text.Paragraph;import com.lowagie.text.Phrase;import com.lowagie.text.Rectangle;import com.lowagie.text.pdf.BaseFont;import com.lowagie.text.pdf.PdfPCell;import com.lowagie.text.pdf.PdfPTable;import com.lowagie.text.pdf.PdfWriter;@Servicepublic class PdfService {        public static void main(String[] args) throws Exception {        //准备的参数        String specName = "基本VLAN基本VLAN基本VLAN基本VLAN基本VLAN基本VLAN基本VLAN基本VLAN基本VLAN基本VLAN基本VLAN基本VLAN基本VLAN";        String matureTitle = "成熟度:";        String matureWord = "成熟特性 受控特性 不可商用";        String descriptionTitle = "描述:";        String descriptionWord = "从便利性、渲染效果综合来看,还是用XmlWorker好些。虽然渲染效果没有达到极致,但十分有利于用户自定义模板";        String remarkTitle = "备注:";        String remarkWord = "对于美制裁中兴一事,商务部新闻发言人高峰19日在回答记者提问时再次强调";        String boardName = "CloudEngine 12800 V200R001C00";        String pathTitle = "路径";        String pathWord = "CloudEngine 12800 V200R001C00>CE12800";        String xiangqTitle = "详情";        String xiangqWord = "美方行径引起了市场对美国贸易和投资环境的普遍担忧,美方的行为表面针对中国,但最终伤害的是美国自身,不仅会使其丧失数以万计的就业机会,还会影响成百上千的美国关联企业";        String beizTitle = "备注";        String beizWord = "将会动摇国际社会对美国投资和营商环境稳定的信心。希望美方不要自作聪明,否则只会自食其果。也希望美方不要低估中方的决心,如果美方坚持通过单边主义的保护政策,不惜伤害中美两国企业利益";                         String outPath = "test.pdf";         Rectangle rect = new Rectangle(PageSize.A4);         Document doc=new Document(rect);        //中文字体,解决中文不能显示问题         BaseFont bfChinese=BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);                  //设置字体样式         Font textFont = new Font(bfChinese,11,Font.NORMAL); //正常         Font boldFont = new Font(bfChinese,11,Font.BOLD); //加粗         Font titleFont = new Font(bfChinese,15,Font.BOLD); //二级标题         Color grayColor = new Color(204,204,204);                  PdfWriter.getInstance(doc, new FileOutputStream(new File(outPath)));         doc.open();         doc.newPage();                  //规格名称//         Paragraph p= new Paragraph(specName, titleFont);//         p.setAlignment(Element.ALIGN_CENTER);//         doc.add(p);         PdfPTable head = new PdfPTable(1);         head.setTotalWidth(new float[]{520}); //设置列宽         head.setLockedWidth(true); //锁定列宽         head.setSpacingBefore(10f); // 前间距         head.setSpacingAfter(10f); // 后间距         PdfPCell cell1 = new PdfPCell(new Phrase(specName, titleFont));         cell1.setBorderWidth(0);         cell1.setBackgroundColor(grayColor);         cell1.setMinimumHeight(20); //设置单元格高度         cell1.setHorizontalAlignment(Cell.ALIGN_CENTER); //设置水平居中         cell1.setVerticalAlignment(Cell.ALIGN_MIDDLE); //设置垂直居中         head.addCell(cell1);         doc.add(head);                          //成熟度、描述、备注         Paragraph p = new Paragraph();         Phrase ph = new Phrase();          Chunk c1 = new Chunk(matureTitle, boldFont) ;         Chunk c2 = new Chunk(matureWord, textFont) ;         ph.add(c1);         ph.add(c2);         p.add(ph);         p.setLeading(20);         doc.add(p);                  p = new Paragraph();         ph = new Phrase();          c1 = new Chunk(descriptionTitle, boldFont) ;         c2 = new Chunk(descriptionWord, textFont) ;         ph.add(c1);         ph.add(c2);         p.add(ph);         p.setLeading(20);         doc.add(p);                  p = new Paragraph();         ph = new Phrase();          c1 = new Chunk(remarkTitle, boldFont) ;         c2 = new Chunk(remarkWord, textFont) ;         ph.add(c1);         ph.add(c2);         p.add(ph);         p.setLeading(20);         doc.add(p);                  //创建2列的详情表格         PdfPTable table = new PdfPTable(2);         table.setSpacingBefore(20f);                    //table前间距         table.setTotalWidth(new float[]{ 100, 420});     //设置列宽         table.setLockedWidth(true); //锁定列宽         PdfPCell cell;         //第一行 实例名         cell = new PdfPCell(new Phrase(" ", textFont));         cell.setMinimumHeight(30); //设置单元格高度         cell.setBackgroundColor(grayColor);         table.addCell(cell);         cell = new PdfPCell(new Phrase(boardName, textFont));         cell.setBackgroundColor(grayColor);         cell.setUseAscender(true); //设置可以居中         cell.setHorizontalAlignment(Cell.ALIGN_CENTER); //设置水平居中         cell.setVerticalAlignment(Cell.ALIGN_MIDDLE); //设置垂直居中         table.addCell(cell);         //第二行 路径         cell = new PdfPCell(new Phrase(pathTitle, textFont));         cell.setMinimumHeight(40);          cell.setUseAscender(true);          cell.setHorizontalAlignment(Cell.ALIGN_CENTER);          table.addCell(cell);         cell = new PdfPCell(new Phrase(pathWord, textFont));         cell.setUseAscender(true);          cell.setHorizontalAlignment(Cell.ALIGN_CENTER);          table.addCell(cell);         //第三行 详情         cell = new PdfPCell(new Phrase(xiangqTitle, textFont));         cell.setMinimumHeight(80);          cell.setUseAscender(true);          cell.setHorizontalAlignment(Cell.ALIGN_CENTER);          table.addCell(cell);         cell = new PdfPCell(new Phrase(xiangqWord, textFont));         cell.setUseAscender(true);          cell.setHorizontalAlignment(Cell.ALIGN_CENTER);          table.addCell(cell);         //第四行 备注         cell = new PdfPCell(new Phrase(beizTitle, textFont));         cell.setMinimumHeight(120);          cell.setUseAscender(true);          cell.setHorizontalAlignment(Cell.ALIGN_CENTER);          table.addCell(cell);         cell = new PdfPCell(new Phrase(beizWord, textFont));         cell.setUseAscender(true);          cell.setHorizontalAlignment(Cell.ALIGN_CENTER);          table.addCell(cell);                  doc.add(table);         doc.close();                  System.out.println("------------->>写出完毕");    }            }

 

运行之后导出的效果:

 

转载于:https://www.cnblogs.com/tenWood/p/8887637.html

你可能感兴趣的文章
eyoucms目录结构
查看>>
网络公司易优专员介绍几种SEO工具
查看>>
关于Java线程池异常不打印问题
查看>>
jQuery插件的使用方法
查看>>
Python学习笔记-基础篇
查看>>
4款超强大素材资源网站,收藏起来刻不容缓!
查看>>
Linux的.a、.so和.o文件
查看>>
浅谈数据标注平台运营模式
查看>>
怎么解决汽车制造业CAD图纸安全外发问题?
查看>>
Tech 助力Fin ,大数据风控系统赋能掌众金服!
查看>>
关于uiview
查看>>
sublime text3使用心得
查看>>
文字转换成语音,这里有简单的方法
查看>>
ZooKeeper 概念篇:你不知道的ZooKeeper,网友回复:精辟
查看>>
建筑论文发表多少钱
查看>>
Docker入门教程
查看>>
支持高并发的短信接口-kewail
查看>>
[java] Could not find the main class的问题处理
查看>>
和为n连续正数序列
查看>>
golang学习的点点滴滴:匿名函数
查看>>