1.文档内容的基本格式设置
示例代码:
package com.yan.exc;
import java.awt.Color;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.JOptionPane;
import com.lowagie.text.Chunk;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Font;
import com.lowagie.text.FontFactory;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfWriter;
public class Pdf05C {
public static void main(String[] args) {
Document document = new Document();
try {
PdfWriter.getInstance(document, new FileOutputStream("C:\\005.pdf"));
document.open();
BaseFont font = BaseFont.createFont(BaseFont.TIMES_ROMAN,BaseFont.CP1252,BaseFont.NOT_EMBEDDED);
BaseFont font2 = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252,BaseFont.NOT_EMBEDDED);
BaseFont font3 = BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);
//BaseFont.createFont(name, encoding, embedded)
Font chinese = new Font(font3,15,Font.NORMAL);
Font content1 = new Font(font2, 12,Font.BOLD);
Font content = new Font(font, 16);
document.add(new Paragraph("This document is created by iText!",content));
document.add(new Paragraph("www.samsung.com", content1));
document.add(new Paragraph("www.samsung.com"));
document.add(new Paragraph("there are some words",FontFactory.getFont(FontFactory.HELVETICA,15,Font.UNDERLINE)));
document.add(new Paragraph("These content will be deperated!",
FontFactory.getFont(FontFactory.COURIER,15,Font.NORMAL|Font.STRIKETHRU)));
document.add(new Paragraph("中文内容也可以正常显示",chinese));
Chunk uk1 = new Chunk("Text Chunk1",FontFactory.getFont(FontFactory.COURIER_BOLD,12,Font.ITALIC));
Chunk uk2 = new Chunk("Text Chunk2",FontFactory.getFont(FontFactory.COURIER_BOLD,15,Font.BOLD));
uk2.setBackground(new Color(30, 50, 120));
document.add(uk1);
document.add(uk2);
JOptionPane.showMessageDialog(null, "文档已创建!");
document.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
关键要点:
1)设置字体,使用BaseFont创建基准字体,通过Font类来格式化具体显示内容的字体。常见格式包括:加粗、斜体、下划线、删除线等。
2)文档块Chunk,使用Chunk类创建一个文档块用于显示在PDF文档中,这些文档块是可以在同一行内并列显示的。
3)当PDF文档中显示非英文字符时,需要使用BaseFont类的静态方法createFont(String name,String encoding,boolean embedded)来对文字进行重新编码指定。处理中文时name为具体的中文字体名称,encoding值为UniGB-UCS2-H,embedded值使用字体常量NOT_EMBEDDED。
2.对文档添加页码
示例代码:
package com.yan.exc;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.JOptionPane;
import com.lowagie.text.DocumentException;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfStamper;
public class Pdf06C {
public static void main(String[] args) {
try {
PdfReader reader = new PdfReader("C:\\EJB3.0实例教程.pdf");
int pages = reader.getNumberOfPages();
PdfStamper stamp = new PdfStamper(reader, new FileOutputStream("C:\\test_pre.pdf"));
BaseFont ch = BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);
PdfContentByte pager = null;
for (int i = 1; i <= pages; i++) {
//stamp.get
pager = stamp.getUnderContent(i);
pager.beginText();
pager.setFontAndSize(ch, 10);
pager.setTextMatrix(280, 15);
pager.showText("第"+i+"页,共"+pages+"页");
pager.endText();
}
stamp.close();
JOptionPane.showMessageDialog(null, "操作已完成!");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
以上程序先读取了一个pdf文件(也可以通过程序创建),位于C盘根路径下。添加页码时,通过PdfReader类来读取这个文档,并通过PdfStamper类来完成页码添加,输出处理后的文档为test_pre.pdf。
关键API:
1)public int com.lowagie.text.pdf.PdfReader.getNumberOfPages(),该方法返回reader读取文档的总页数。
2)使用PdfStamper获取当前页面底部内容,进行页码添加,并使用setTextMatrix(float x,float y)方法设置页码的显示位置。
相关推荐
java解析PDF格式的文件demo。JAVA实现PDF解析,对PDF文件中的文本内容可输出仅供参考学习,不喜勿喷。
自己写的 spire.pdf 简单的demo ,有一些基础的使用方法,对刚接触的小伙伴会非常友善; 里面主要包含: 1.去除水印; 2.获取每页pdf的图片; 3.获取书签; 4.读取pdf将pdf转化为文字,最后由txt文件保存; 5....
1.功能:该API为适用于Java平台下,通过后端程序代码调用API接口操作PDF文档,可实现如下功能: 1.1 文档转换:PDF转图片/Word/SVG/XPS/HTML/XPS/TIFF、图片转PDF 1.2 文档操作:文档创建、合并、拆分、压缩、复制...
java 读取PDF文件中的内容 java 读取PDF文件中的内容
很多应用程序要求动态生成 PDF 文档。这类应用程序包括银行生成用于电子邮件投递的客户报表,到...在本文中,将使用 iText Java 库生成 PDF 文档,并引导您完成一个示例应用程序,以使您能够更好地理解和使用 iText。
我们可以使用PDFBox开发可以创建,转换和操作PDF文档的Java程序。PDFBox的主要功能: Extract Text – 使用PDFBox,您可以从PDF文件中提取Unicode文本。 Split & Merge – 使用PDFBox,您可以将单个PDF文件分成多个...
java实现对pdf文档的增删改,只要2分物有所值欢迎下载
可以将数据通过数据流形式进行pdf化的一套代码。
java使用itext实现pdf文件下载小案例,通过系统路径下载,和通过浏览器下载
java读取pdf文件作者、标题等属性
使用java给pdf添加导航目录,完美可运行!输入源文件,会保存为一个新的添加导航后的新PDF文档
用途:根据PDF模板生成PDF文件,将数据库查询的数据插入到模板指定未知,然后生成新的PDF文件 原理: 代码说明:exprotPDF_Main 为主文件。...支持各种java调用数据库数据,生成PDF文件。多个版本供参考。
Java生成pdf文件,解决中文乱码问题.pdf
历经一个月总结使用java实现pdf文件的电子签字+盖章+防伪二维码+水印+PDF文件加密的全套解决方案
java 生成PDF文件 java 生成PDF文件 java 生成PDF文件
java 打印pdf文件 ,也可支持批量打印
使用此 JAVA PDF 组件,开发人员可以在 JAVA 应用程序(J2SE 和 J2EE)上实现丰富的 PDF 操作功能,无论是新建 PDF 文档,还是处理现有的 PDF 文档。 主要功能: 1. 轻松操作文档。支持绘制文本,图像和形状到 PDF,...
java集成pdf.js 在线阅览pdf文件 java集成pdf.js 在线阅览pdf文件
java使用itext对PDF进行签名签章。包括:java创建PDF文档,java对PDF进行加水印,java对PDF加图片水印。java对PDF进行签章。java读取p12秘钥库中证书对PDF进行签章加密。
使用Java 读取PDF,利用JFrame和JPanel做成一个窗口,把读取的PDF文本显示到界面