Apache PDFbox快速開發指南

jopen 10年前發布 | 56K 次閱讀 PDF工具包 PDFBox

一、介紹

Apache PDFbox是一個開源的、基于Java的、支持PDF文檔生成的工具庫,它可以用于創建新的PDF文檔,修改現有的PDF文檔,還可以從PDF文檔中提取所需的內容。Apache PDFBox還包含了數個命令行工具。

二、特征

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項即可。
Apache PDFbox快速開發指南

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();  
    }  
}  </pre><a class="About" title="?" href="/misc/goto?guid=4959549894057938106"></a></div>

</div> </div>
執行程序,在磁盤E盤產生test.pdf文件。

總結說明:至Apache PDFbox 1.8.2版,仍然不支持中文PDF的創建,比iText的功能要弱很多。

來自:http://blog.csdn.net/chszs/article/details/9026439

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!