您的位置:首页 > 编程语言 > Java开发

iText制作PDF文件 学习笔记 (七)

2017-10-12 15:17 357 查看

iText制作PDF文件  

(七)
图像和文本的绝对位置:
之前我们添加文本、图片、段落、列表、表格等,均未涉及到布局问题,有时候我们不需要使用到这种自动的布局方式,有时候我们需要放置到特定的位置当中,这时候我们需要使用到PdfContentByte类。
package com.java.pdf.seventh;

import java.io.FileOutputStream;

import com.itextpdf.text.Document;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfWriter;

/**
* 创建日期:2017-10-12上午9:22:48
* 修改日期:
* 作者:ttan
* 描述:图像和文本的绝对位置
*/
public class Pdf_content {
public static void main(String[] args) {
Document document = new Document();
try {
//获得PdfWriter对象
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("content.pdf"));
//document.open()的操作应当在PdfContentByte对象操作之前执行
document.open();
//获得PdfContentByte对象 --关键
PdfContentByte pcb = writer.getDirectContent();
//pcbun的图像将在pbc的图像之下
PdfContentByte pcbun = writer.getDirectContentUnder();
pcb.setLineWidth(10f);
pcb.moveTo(200, 200);
pcb.lineTo(100, 700);
pcbun.setLineWidth(20f);
pcb.moveTo(400, 400);
pcb.lineTo(100, 700);
pcb.stroke();//若要改变线宽或者颜色的话,在调用stroke()方法之前,否则无效
pcbun.stroke();
} catch (Exception e) {
e.printStackTrace();
}finally{
document.close();
}
}
}


生成文本:
package com.java.pdf.seventh;

import java.io.FileOutputStream;

import com.itextpdf.text.Document;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfWriter;

/**
* 创建日期:2017-10-12下午1:43:10
* 修改日期:
* 作者:ttan
* 描述:文本
*/
public class Pdf_contentText {
public static void main(String[] args) {
Document document = new Document();
try {
//获得PdfWriter对象
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("contentText.pdf"));
//document.open()的操作应当在PdfContentByte对象操作之前执行
document.open();
//获得PdfContentByte对象 --关键
PdfContentByte pcb = writer.getDirectContent();
//开始
pcb.beginText();
//创建字体
BaseFont bf = BaseFont.createFont("E:\\fzktjw.ttf", "Identity-H", true);
//设置字体和大小
pcb.setFontAndSize(bf, 24);
//pcb.showTextAligned(alignment, text, x, y, rotation)
//输入文字并写入坐标,将文本置于自己所需要放置的位置
pcb.showTextAligned(PdfContentByte.ALIGN_CENTER, "PDF学习之PdfContentByte的使用。", 300, 500, 0);
//结束
pcb.endText();
}catch(Exception e){
e.getStackTrace();
}finally{
document.close();
}
}
}

总结:在很多时候,我们通过JAVA生成PDF有特定的需要,比如生成报表,可能需要放置多种对象,这时候我们需要用到PdfContentByte类去进行编辑。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息