導航:首頁 > 源碼編譯 > pdfbox源碼

pdfbox源碼

發布時間:2023-06-05 02:30:03

java操作pdf表格數據

用Java簡單的讀取pdf文件中的數據:
第一步:下載PDFBox-0.7.2.jar。提供一個下載地址: http://pdfhome.hope.com.cn/Resource.aspx?CID=63844604-5253-4ae1-b023-258c9e324061&RID=20cd8f94-1cee-40b6-a3df-0ef024f8e0d2解壓後,把lib文件下的PDFBox-0.7.2.jar,PDFBox-0.7.2-log4j.jar放到你classpath路徑下。(我把源碼以及jar包都放到下面的附件里,方面你的使用。)
第二步:寫個簡單的讀取pdf文件的程序。(PdfReader.java)
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.net.MalformedURLException;
import java.net.URL;
import org.pdfbox.pdmodel.PDDocument;
import org.pdfbox.util.PDFTextStripper;
public class PdfReader {
public void readFdf(String file) throws Exception {
// 是否排序
boolean sort = false;
// pdf文件名
String pdfFile = file;
// 輸入文本文件名稱
String textFile = null;
// 編碼方式
String encoding = "UTF-8";
// 開始提取頁數
int startPage = 1;
// 結束提取頁數
int endPage = Integer.MAX_VALUE;
// 文件輸入流,生成文本文件
Writer output = null;
// 內存中存儲的PDF Document
PDDocument document = null;
try {
try {
// 首先當作一個URL來裝載文件,如果得到異常再從本地文件系統//去裝載文件
URL url = new URL(pdfFile);
//注意參數已不是以前版本中的URL.而是File。
document = PDDocument.load(pdfFile);
// 獲取PDF的文件名
String fileName = url.getFile();
// 以原來PDF的名稱來命名新產生的txt文件
if (fileName.length() > 4) {
File outputFile = new File(fileName.substring(0, fileName
.length() - 4)
+ ".txt");
textFile = outputFile.getName();
}
} catch (MalformedURLException e) {
// 如果作為URL裝載得到異常則從文件系統裝載
//注意參數已不是以前版本中的URL.而是File。
document = PDDocument.load(pdfFile);
if (pdfFile.length() > 4) {
textFile = pdfFile.substring(0, pdfFile.length() - 4)
+ ".txt";
}
}
// 文件輸入流,寫入文件倒textFile
output = new OutputStreamWriter(new FileOutputStream(textFile),
encoding);
// PDFTextStripper來提取文本
PDFTextStripper stripper = null;
stripper = new PDFTextStripper();
// 設置是否排序
stripper.setSortByPosition(sort);
// 設置起始頁
stripper.setStartPage(startPage);
// 設置結束頁
stripper.setEndPage(endPage);
// 調用PDFTextStripper的writeText提取並輸出文本
stripper.writeText(document, output);
} finally {
if (output != null) {
// 關閉輸出流
output.close();
}
if (document != null) {
// 關閉PDF Document
document.close();
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
PdfReader pdfReader = new PdfReader();
try {
// 取得E盤下的SpringGuide.pdf的內容
pdfReader.readFdf("E:\\SpringGuide.pdf");
} catch (Exception e) {
e.printStackTrace();
}
}
}
這樣就簡單的完成了從pdf中讀取數據了。在你的pdf文件所在的目錄下生成一個同名的txt文件。

㈡ GitHub上面有哪些經典的java框架源碼

㈢ C#怎麼打開pdf文件

1.PDFBox的IKVM版本:目前只有PDFBox的IKVM版本能比較好地從PDF中提取文本
2.使用Acrobat的SDK
3.XPDF:如果條件允許可以考慮使用XPDF的PDFToTextXPDF是用C語言編寫的PDF解析庫,並提供多個工具,開放源代碼(如果熟悉C和dotnet,也許可以在dotnet環境下編譯)

㈣ PDFBOX如何提取PDF中的內容(標題,作者,等等..)

這個代碼誰懂嗎?
PDDocument pDoc=new PDDocument(cosDoc);
try{
PDDocumentInformation docInfo = pDoc.getDocumentInformation();
if(docInfo != null){
String author = docInfo.getAuthor();
System.out.println("author" +author);
String title = docInfo.getTitle();
String summary = docInfo.getSubject();
String keywords = docInfo.getKeywords();
System.out.println("Author " +author);
System.out.println("Title " +title);
System.out.println("Summary " +summary);
System.out.println("Keywords " +keywords);

if(!author.isEmpty()){
doc.add(new Field("author",author,Field.Store.NO,Field.Index.ANALYZED));

}
if(!title.isEmpty()){
doc.add(new Field("title",title,Field.Store.NO,Field.Index.ANALYZED));
}
if(!summary.isEmpty()){

doc.add(new Field("summary",summary,Field.Store.NO,Field.Index.ANALYZED));
}
if(!keywords.isEmpty()){
doc.add(new Field("keywords",keywords,Field.Store.NO,Field.Index.ANALYZED));
}
}
}catch(Exception e){
closeCOSDocument(cosDoc);
closePDDocument(pDoc);
System.err.println("cannot get pdf meta-data" +e.getMessage());

}
return doc;
}

private static COSDocument parseDocument(FileInputStream is) throws IOException{
PDFParser parser=new PDFParser(is);
parser.parse();
return parser.getDocument();
}

private static void closeCOSDocument(COSDocument cosDoc){
if(cosDoc != null){
try{
cosDoc.close();
}catch(IOException e){
//
}
}
}

private static void closePDDocument(PDDocument pdDoc){
if(pdDoc != null){
try{
pdDoc.close();
}catch(IOException e){
//
}
}
}

㈤ 資料庫及pdf文件輸出

【C++庫】

PDF類庫 PoDoFo
http://podofo.sourceforge.net/
PoDoFo 是一個用來操作 PDF 文件格式的 C++ 類庫。它還包含一些小工具用來解析、修改和創建 PDF 文檔。

Xpdf
http://www.foolabs.com/xpdf/download.html
Xpdf是一個開放源代碼的PDF檔案瀏覽器,Xpdf 可解碼LZW壓縮格式並閱讀加密的PDF文件。

PDF生成工具 Poppler
http://poppler.freedesktop.org/
Poppler 是一個用來生成 PDF 的C++類庫,從xpdf 繼承而來。它使用了很多先進的類庫例如 freetype 和 cairois 來達到更好的輸出效果,同時也提供了一組命令行工具包。

JagPDF
http://www.jagpdf.com/
JagPDF 提供給 C/C++ 和 python 編程語言用來生成 PDF 文檔的庫。

libHaru
http://libharu.org/wiki/Downloads
開源的PDF庫

CLibPDF
http://hpux.connect.org.uk/hppd/hpux/Shells/ClibPDF-2.02/
ClibPDF是C函數庫,可以直接生成PDF文件, 不需要Adobe Acrobat等工具支持.

------------------------------------------------------------------------

【JAVA庫】
PDF操作類庫 iText
http://www.lowagie.com/iText/
iText是一個能夠快速產生PDF文件的java類庫。iText的java類對於那些要產生包含文本,表格,圖形的只讀文檔是很有用的。它的類庫尤其與java Servlet有很好的給合。使用iText與PDF能夠使你正確的控制Servlet的輸出。

PDFBox
http://www.pdfbox.org/
非常強悍的PDF生成和解析Java類庫

jpedal
http://www.jpedal.org/
jpedal是開源純Java的PDF文檔解析庫,可以用來讀取PDF文檔中的文字、圖形。

JasperReports
http://jasperforge.org/plugins/project/project_home.php?group_id=102
JasperReports是一個基於Java的開源報表工具,它可以在Java環境下像其它IDE報表工具一樣來製作報表。JasperReports 支持PDF、HTML、XLS、CSV和XML文件輸出格式。JasperReports是當前Java開發者最常用的報表工具。

Fourfive
http://sourceforge.net/projects/fourfive
Fourfive是一個領先的開源Web報表解決方案,使用XML作為它的配置文件。支持集群、負載平衡、動態發布、PDF, Excel, LDAP,圖表、過濾器、排序、布局定製、門戶、JasperReports、Velocity模板、兼容Internet Explorer, Netscape, Mozilla, Opera。

FOP
http://xmlgraphics.apache.org/fop/
FOP是由James Tauber發起的一個開源項目,原先的版本是利用xsl-fo將xml文件轉換成pdf文件。但最新的版本它可以將xml文件轉換成pdf,mif,pcl,txt等多種格式以及直接輸出到列印機,並且支持使用SVG描述圖形。

JFreeReport
http://sourceforge.net/projects/jfreereport/
JFreeReport是一個用來生成報表的Java類庫。它為Java應用程序提供一個靈活的列印功能並支持輸出到列印機和PDF, Excel, HTML和XHTML, PlainText, XML和CSV文件中。

YaHP
http://www.allcolor.org/YaHPConverter/
YaHP是一個能夠把html文檔轉換成pdf文檔的Java開源包。

PDFjet
http://pdfjet.com/os/edition.html
PDFjet是一個用於動態生成PDF文檔的Java類庫。支持繪制點、線、方框、圓、貝塞爾曲線(Bezier Curves) 、多邊形、星形、復雜路徑和形狀。支持unicode,文本間距調整,嵌入超鏈接等。它同時有Java和.NET兩個版本。

vPDF
http://sourceforge.net/projects/vpdf/
一個將RTF文檔轉成PDF文檔的工具

【.NET組件】
--------------------------------------------------

iTextSharp
http://itextsharp.sourceforge.net/
iTextSharp 是用來生成 PDF 文檔的 C# 組件

PDFsharp
http://www.pdfsharp.com/
PDFsharp is a C# library that easily creates PDF documents on the fly. The same GDI+ like drawing routines can be used to create PDF documents, draw on the screen, or send output to any printer. PDFsharp can also modify, merge, and split existing PDF files or incorporate pages from existing PDF files into new PDF documents.

Report.NET
http://report.sourceforge.net/
Report.NET 是一個功能強大且易用的用來生成 PDF 文檔的 C# 組件
---------------------------------------------------------------------

【PHP】

Php Pdf Factory
http://sourceforge.net/projects/pdf-factory/
一個PHP的PDF操作庫。

TCPDF
http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=tcpdf
TCPDF是一個用於快速生成PDF文件的PHP5函數包。TCPDF基於FPDF進行擴展和改進。支持UTF-8,Unicode,HTML和XHTML。

HTML2PDF
http://html2fpdf.sourceforge.net/
HTML2PDF能夠把一個HTML文本轉換成一個列印機友好的PDF文件。這個PHP腳本構建在FPDFPHP腳本之上。

cPdfWriter
http://www.palos.ro/index.php?page=opensource_active
cPdfWriter是一個能夠輸出PDF文檔的PHP5 class。基於TCPDF,FPDF和其它相關腳本。

FPDF
http://www.fpdf.org/
FPDF這個PHP Class允許你採用純PHP(更確切地說就是不需要使用PDFlib)來生成PDF文件。它所具有的特點包括:可選擇的unit大小,頁面格式和頁邊 距;頁眉和頁腳管理;自動分頁;自動換行與文本自動對齊;支持JPEG與PNG圖片格式;支持著色和文件超鏈接;支持TrueType,Type1與 encoding;支持頁面壓縮。...

------------------------------------------------------------------------

【Python和Ruby】
Prawn
http://prawn.majesticseacreature.com/
Prawn: 用Ruby生成PDF更簡捷

ReportLab
http://www.reportlab.org/
Reportlab是用python開發的生成pdf的工具包,它是一個開源軟體。

PDF生成工具 pyPdf
PyPDF這是一個用於構建PDF的純Python工具包

閱讀全文

與pdfbox源碼相關的資料

熱點內容
linux多終端 瀏覽:809
法律寫作pdf 瀏覽:144
國貨哪個品牌最好app 瀏覽:951
看哪個app給錢最多 瀏覽:178
編程靠經驗嗎 瀏覽:759
c教程pdf下載地址 瀏覽:573
製作視頻哪個app有瘦臉功能 瀏覽:649
linux查看線程內存 瀏覽:509
命令行簽名apk 瀏覽:92
網頁照片旋轉源碼 瀏覽:842
QQ會員頭像源碼 瀏覽:263
內核命令行 瀏覽:324
腳本提取源碼器 瀏覽:930
smo源碼 瀏覽:877
為什麼要搭建單獨伺服器 瀏覽:480
編譯器有什麼控制 瀏覽:893
希爾伯特pdf 瀏覽:645
php數組全數字 瀏覽:647
解密塔羅牌小程序源碼 瀏覽:862
聚合跑分源碼 瀏覽:555