PDF 文件是一種非常常用的文件格式,在企業(yè)信息系統(tǒng)存儲和交換信息中普遍使用。然而從 PDF 文檔中獲取表格段落等文檔內容卻是一件非常麻煩的事情,這是因為pdf的設計初衷是基于文檔顯示的,為了能保證在不同平臺中完全一致的視覺效果,文檔以頁為單位存儲的是一系列包含線條、字符、圖片等基本元素的繪圖指令。基于這個原因,pdf文檔不能像word文檔一樣直接獲取表格和段落,如要獲取結構化的文檔內容,需要在獲取字符、線條等圖形及坐標基礎上按閱讀順序把含線條、字符、圖片等基本元素拼接成文檔,過程十分復雜,而且需要不斷優(yōu)化才能達到滿意的效果。

PDFBox是apache基金會旗下的一個為java開發(fā)人員讀取和創(chuàng)建PDF文檔而準備的純Java開源類庫。通過PDFBox可以輕松解析PDF文檔并逐頁獲取圖形元素及坐標。
pdftranspro是基于PDFBox的一款專業(yè) pdf 文本內容提取軟件,支持windows和linux平臺,經過數(shù)年的持續(xù)改進其內容提取能力已經達到令人驚艷的地步,不僅能對跨頁、跨欄的段落或表格進行合并處理,精確還原整篇文檔內的段落和表格,而且可以同時輸出html、xml、json、txt 等 4 種格式,方便用戶高效獲取 pdf 文檔內的精確信息或數(shù)據(jù)。其個人版提供操作界面,可以一鍵處理單個pdf文檔,個人用戶免費使用。SSDK版通過Java調用SDK方式集成pdf文檔轉換功能,也提供 pdf文檔截取合并等實用的 pdf 編輯功能。控制臺版需取得licence文件才能使用,用戶可免費試用。
接口說明 1.單文檔轉換轉換單個 PDF 文檔至 html、xml、json、txt 等格式。
處理函數(shù)1:public void transone_pdf(String infile,String outpath,boolean out_style,boolean html,boolean xml, boolean json,boolean txt)其中參數(shù)infile為源文件位置,outpath為文件輸出路徑, out_style 為轉換樣式參數(shù),true 為"標記頁碼",false 為"跨頁合并"。html、xml、json、txt等參數(shù)表示是否生成該格式文件,可同時轉換生成多種格式文件。
處理函數(shù)2:public void transone_pdf(String infile,String outpath,boolean out_style,boolean html,boolean xml, boolean json,boolean txt,int pagestart,int pageend)其中增加參數(shù) pagestart 和 pageend 分別代表起始頁碼和截止頁碼。
處理函數(shù)3:public String getpdftext(String infile,boolean out_style,String out_type)該函數(shù)返回指定格式文本,其中參數(shù) out_style 為轉換樣式參數(shù),true 為"標記頁碼",false 為"跨頁合并",out_type 為文本格式,只能是”html”,”xml”,”json”或”txt”。
處理函數(shù)4:public String getpdftext(String infile,boolean out_style,String out_type,int pagestart,int pageend)其中增加參數(shù) pagestart 和 pageend 分別代表起始頁碼和截止頁碼。
示例:import org.pdf.parser.Pdfutil;
public class Test_util
{
? ? public static void main(String[] args)
? ? {
? ?? ? Pdfutil test = new Pdfutil();
? ? ? ? test.transone_pdf("infiles/abc.pdf","outfiles",true,true,false,false,false);? ? //將表示將文件 infiles/abc.pdf 轉成 html 格式,轉換樣式為"標記頁碼",文件生成在 outfiles 下。
? ? ? ? test.transone_pdf("infiles/abc.pdf","outfiles",false,true,true, true,true,10,20);//表示將文件 infiles/abc.pdf 轉成 html、xml、json、txt四種格式,轉換樣式為"跨頁合并",頁碼范圍為 10 至 20 頁,文件生成在 outfiles 下。
? ? ? ? System.out.println(test.getpdftext("infiles/abc.pdf",false,"xml"));//表示將文件 infiles/abc.pdf 轉成 xml 格式,轉換樣式為跨頁合并,返回生成的 xml 文本。
? ? ? ? System.out.println(test.getpdftext("infiles/abc.pdf",true,"html",10,20));//表示將文件 infiles/abc.pdf 轉成 html 格式,轉換樣式為標記頁碼,頁碼范圍為 10 至 20 頁,返回生成的 html 文本。
? ? }
}2.批量文檔轉換批量轉換 PDF 文檔至 html、xml、json、txt 等格式。
處理函數(shù)1:public void transall_pdf(String inpath,String outpath,boolean txt,boolean html,boolean xml, boolean json,boolean out_style)其中參數(shù)infile為源文件路徑,outpath為文件輸出路徑, out_style 為轉換樣式參數(shù),true 為"標記頁碼",false 為"跨頁合并"。html、xml、json、txt等參數(shù)表示是否生成該格式文件,可同時轉換生成多種格式文件。
處理函數(shù)2:public void transall_pdf(String inpath,String outpath,boolean txt,boolean html,boolean xml, boolean json,boolean out_style,int pagestart,int pageend,int num_bfs)其中增加參數(shù) pagestart 和 pageend 分別代表起始頁碼和截止頁碼,num_bfs 為并發(fā)任務數(shù),系統(tǒng)默認為 5,有效設置范圍為 1 至 10。
示例:import org.pdf.parser.Pdfutil;
public class Test_util
{
public static void main(String[] args)
{
Pdfutil test = new Pdfutil();
test.transall_pdf("infiles","outfiles",true,true,false,false,false);//將表示將文件夾 infiles 下所有 pdf 文件轉成 html 格式,轉換樣式為標記頁碼,文件生成在 outfiles 下。
test.transall_pdf("infiles","outfiles",false,true,true, true,true,10,20);//表示將文件夾infiles下所有pdf文件轉成html、xml、json、txt 四種格式,轉換樣式為跨頁合并,頁碼范圍為 10 至 20 頁,文件生成在 outfiles 下。
}
}3.文檔截取用于截取 pdf 文檔,生成一份新的指定頁碼范圍的 pdf 文檔。
處理函數(shù):public void splitpdf(String filePath, String outPath,int startpageNum,int endpageNum)其中參數(shù)filePath為源文件位置,outpath為文件輸出路徑, startpageNumh 和 endpageNum 分別代表起始頁碼和截止頁碼。截取后的文件名為源文件加前綴”split_”。
示例:import org.pdf.parser.Pdfutil;
public class Test_util
{
public static void main(String[] args)
{
Pdfutil test = new Pdfutil();
test.splitpdf("infiles/abc.pdf","outfiles",1,10);// 表 示 截 取 文 件 infiles/abc.pdf 第 1 至 10 頁 , 生 成 在 outfiles 下,文件名為”split_abc.pdf”。
}
}4.文檔合并用于合并兩份 pdf 文檔為一份 pdf 文檔。
處理函數(shù):public void mergepdf(String filename1,String filename2,String outpath)其中參數(shù)filename1為源文件1位置,filename2為源文件2位置,outpath為文件輸出路徑。合并后的文件名為filename1 加前綴”merg_”。
示例:import org.pdf.parser.Pdfutil;
public class Test_util
{
public static void main(String[] args)
{
Pdfutil test = new Pdfutil();
test.mergepdf("infiles/abc1.pdf","infiles/abc2.pdf","outfiles");// 表 示 合 并 文 件 infiles/abc1.pdf 和 infiles/abc2.pdf 生成在 outfiles 下,文件名為”merg_abc1.pdf”。
}
}本文完。
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
網頁名稱:java調用SDK版pdftranspro接口詳解-創(chuàng)新互聯(lián)
當前地址:http://chinadenli.net/article12/eddgc.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供手機網站建設、網站內鏈、App設計、云服務器、標簽優(yōu)化、面包屑導航
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容