Apache PDFbox快速开发指南

简介: 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/9026439 Apache PDFbox快速开发指南作者:chszs,转载需注明。
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/9026439

Apache PDFbox快速开发指南

作者:chszs,转载需注明。博客主页: http://blog.csdn.net/chszs

一、介绍

Apache PDFbox是一个开源的、基于Java的、支持PDF文档生成的工具库,它可以用于创建新的PDF文档,修改现有的PDF文档,还可以从PDF文档中提取所需的内容。Apache PDFBox还包含了数个命令行工具。
Apache PDFbox于前不久发布了最新的1.8.2版。

二、特征

Apache PDFBox主要有以下特征:
1)文本提取:从PDF文档中提取文本。
2)合并&分割:可以把多个PDF文档合并成单个,也可以把单个PDF分拆成多个PDF文档。
3)表单填充:可以从PDF表单中提取数据,或者是填充PDF表单。
4)PDF/A验证:验证PDF文档是否满足PDF/A ISO标准。
5)PDF打印:把PDF文档输出到打印机——利用了Java的打印API。
6)PDF转换:可以把PDF文档转换成映像文件。
7)PDF创建:可以从头创建新的PDF文档。
8)集成Lucene搜索引擎:Lucene搜索引擎与PDF索引相集成。

三、开发实战

Apache PDFbox既然是PDF工具库,那么最重要的例子就是用它创建一个PDF文档。下面我们开始这一历程。

1. 创建Java项目

在Eclipse下创建一个Java项目,项目名为PDFboxDemo。

2. 下载PDFbox包

地址:
1)pdfbox-1.8.2.jar
地址:http://archive.apache.org/dist/pdfbox/1.8.2/pdfbox-1.8.2.jar
说明:满足一般的PDF操作需求。
2)pdfbox-app-1.8.2.jar
http://archive.apache.org/dist/pdfbox/1.8.2/pdfbox-app-1.8.2.jar
说明:PDFbox的多个命令行的工具包。
3)fontbox-1.8.2.jar
地址:http://archive.apache.org/dist/pdfbox/1.8.2/fontbox-1.8.2.jar
说明:PDF使用的字库包
因此,本例使用1、3项即可。

3. 创建类文件

先创建chszs.pdf源码包,在此包内创建类文件CreatePDF.java。
package chszs.pdf;

//import java.io.File;
import java.io.IOException;

import org.apache.pdfbox.exceptions.COSVisitorException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.edit.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDFont;
//import org.apache.pdfbox.pdmodel.font.PDTrueTypeFont;
import org.apache.pdfbox.pdmodel.font.PDType1Font;

public class CreatePDF {
	public static void main(String[] args) throws IOException{
		PDDocument document = new PDDocument();
		PDPage page = new PDPage();
		document.addPage(page);
		
//		PDFont font = PDTrueTypeFont.loadTTF(document, new File("SIMSUN.TTC"));
		PDFont font = PDType1Font.HELVETICA_BOLD;
		
		PDPageContentStream contentStream = new PDPageContentStream(document, page);
		contentStream.beginText();
		contentStream.setFont(font, 14);
		contentStream.moveTextPositionByAmount(100, 700);
		contentStream.drawString("Hello World");
//		contentStream.drawString("中文");
		contentStream.endText();
		
		contentStream.close();
		
		try {
			document.save("E:/test.pdf");
		} catch (COSVisitorException e) {
			e.printStackTrace();
		}
		document.close();
	}
}

执行程序,在磁盘E盘产生test.pdf文件。

总结说明:至Apache PDFbox 1.8.2版,仍然不支持中文PDF的创建,比iText的功能要弱很多。
目录
相关文章
|
Java API Apache
使用 Apache PDFBox 操作PDF文件
Apache PDFBox库是一个开源的Java工具,专门用于处理PDF文档。它允许用户创建全新的PDF文件,编辑现有的PDF文档,以及从PDF文件中提取内容。此外,Apache PDFBox还提供了一些命令行实用工具。
1800 6
|
Java Apache
Apache PDFbox快速开发指南
一、介绍 Apache PDFbox是一个开源的、基于Java的、支持PDF文档生成的工具库,它可以用于创建新的PDF文档,修改现有的PDF文档,还可以从PDF文档中提取所需的内容。
2318 0
|
Java Apache
通过Apache PDFBox将pdf与图片互相转换以及合并与拆分pdf
通过Apache PDFBox将pdf与图片互相转换以及合并与拆分pdf
1441 0
|
Java Apache
通过Apache PDFBox将pdf转换为word
通过Apache PDFBox将pdf转换为word
1202 0
|
Apache 开发者 数据格式
Apache HttpClient 4.3开发指南
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/16854747 《Apache HttpClient 4.3开发指南》 作者:chszs,转载需注明。
823 0
|
Apache 开发者 数据格式
Apache HttpClient 4.3开发指南
《Apache HttpClient 4.3开发指南》 一、概述 Apache HttpClient 4系列已经发布很久了,但由于它与HttpClient 3.x版本完全不兼容,以至于业内采用此库的公司较少,在互联网上也少有相关的文档资料分享。
1386 0
|
21天前
|
人工智能 运维 Java
Flink Agents:基于Apache Flink的事件驱动AI智能体框架
本文基于Apache Flink PMC成员宋辛童在Community Over Code Asia 2025的演讲,深入解析Flink Agents项目的技术背景、架构设计与应用场景。该项目聚焦事件驱动型AI智能体,结合Flink的实时处理能力,推动AI在工业场景中的工程化落地,涵盖智能运维、直播分析等典型应用,展现其在AI发展第四层次——智能体AI中的重要意义。
315 27
Flink Agents:基于Apache Flink的事件驱动AI智能体框架
|
10月前
|
存储 人工智能 大数据
The Past, Present and Future of Apache Flink
本文整理自阿里云开源大数据负责人王峰(莫问)在 Flink Forward Asia 2024 上海站主论坛开场的分享,今年正值 Flink 开源项目诞生的第 10 周年,借此时机,王峰回顾了 Flink 在过去 10 年的发展历程以及 Flink社区当前最新的技术成果,最后展望下一个十年 Flink 路向何方。
684 33
The Past, Present and Future of Apache Flink
|
12月前
|
SQL Java API
Apache Flink 2.0-preview released
Apache Flink 社区正积极筹备 Flink 2.0 的发布,这是自 Flink 1.0 发布以来的首个重大更新。Flink 2.0 将引入多项激动人心的功能和改进,包括存算分离状态管理、物化表、批作业自适应执行等,同时也包含了一些不兼容的变更。目前提供的预览版旨在让用户提前尝试新功能并收集反馈,但不建议在生产环境中使用。
1493 13
Apache Flink 2.0-preview released

推荐镜像

更多