java 操作 PDF(一)

2014-11-24 10:16:56 · 作者: · 浏览: 0

设置路径的方法:
public String getPath(String path) {
path = ("C:\\" + path + ".pdf");
return path;
}
// 设置字体的方法
public static Font font() {
BaseFont baseFont = null;
try {
baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", true);
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Font font = new Font(baseFont, 12, Font.BOLD, Color.BLUE);
return font;
}

// 设置字体的方法
public static Font ChineseFont() {
BaseFont baseFont = null;
try {
baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", true);
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Font chineseFont = new Font(baseFont, 8, Font.NORMAL, Color.BLUE);
return chineseFont;
}
// 表格是否有数据
public String isNull(Object object) {
if (object == null) {
return "";
}
return object + "";
}

具体设计的代码:
public String getRBPDF(QcyUnitedOrderInfo pageObject) throws Exception {

// TODO Auto-generated method stub
float totalsum = 0;
float totalnum = 0;
List list = (List) this.findRBAllProperty(pageObject);//获取所需要显示的数据
// (1)实例化文档对象
// 第一个参数是页面的大小,接下来的参数分别是,左、右、上和下页边距
Document doc = new Document(PageSize.A4, 14, 14, 20, 20);
// (2)创建写入器。第一个参数是对文档对象的引用
// 第二个参数是输出的文件,将out和document连接起来
PdfWriter writers = PdfWriter.getInstance(doc, new FileOutputStream(new File(getPath(pageObject.getNo()))));//将编号传入,设置好路径和文件名称
doc.addCreationDate();
//生成PDF页眉
HeaderFooter footer = new HeaderFooter(new Phrase(), true);
footer.setBorder(0);//设置边框
footer.setAlignment(Element.ALIGN_CENTER);//对齐设置
doc.setFooter(footer);
// 打开文档,准备写入内容
doc.open();

// 表头设置,创建小节标题,往小节中写文本内容
// Paragraph par3 = new Paragraph("苏州九龙珠餐饮管理有限公司", font());
Paragraph par3 = new Paragraph("#####有限公司", font());
par3.setAlignment(Element.ALIGN_CENTER);
//将章节对象加入到文档中
doc.add(par3);

// 表头设置,创建小节标题,往小节中写文本内容
Paragraph par4 = new Paragraph("销 货 订 单", font());
par4.setAlignment(Element.ALIGN_CENTER);
doc.add(par4);
// 表头设置结束

// 表头设置,创建小节标题,往小节中写文本内容
Paragraph paragraph1 = new Paragraph("开单日期:", ChineseFont());
paragraph1.setIndentationLeft(100);//左边缩进设置
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Chunk chunk1 = new Chunk(sdf.format(pageObject.getReceiptDate()) + " ");
Chunk chunk2 = new Chunk(" " + "单 号: ");
Chunk chunk13 = new Chunk(pageObject.getNo());
paragraph1.add(chunk1);
paragraph1.add(chunk2);
paragraph1.add(chunk13);
doc.add(paragraph1);

Paragraph paragraph = new Paragraph("分 部 :", ChineseFont());
paragraph.setSpacingBefore(10);//之前间隔多少
paragraph.setSpacingAfter(10);//之后间隔多少
paragraph.setIndentationLeft(100);//左边缩进设置
Chunk chunk = new Chunk(pageObje