你需要用到PDFbox api
https://pdfbox.apache.org/1.8/cookbook/textextraction.html
例子如下
importjava.io.File;
importjava.io.IOException;
importorg.apache.pdfbox.pdmodel.PDDocument;
importorg.apache.pdfbox.text.PDFTextStripper;
importorg.apache.pdfbox.text.PDFTextStripperByArea;
try{
PDDocumentdocument=null;
document=PDDocument.load(newFile("test.pdf"));
document.getClass();
if(!document.isEncrypted()){
PDFTextStripperByAreastripper=newPDFTextStripperByArea();
stripper.setSortByPosition(true);
PDFTextStripperTstripper=newPDFTextStripper();
Stringst=Tstripper.getText(document);
System.out.println("Text:"+st);
}
}catch(Exceptione){
e.printStackTrace();
}
㈡ java解析pdf文件,求大神提供代碼,請注意是java語言的
給你提供一個參考例子,你可以在這個例子上試試,修改修改。也是解析PDF的。
importjava.io.File;
importjava.io.FileOutputStream;
importjava.io.OutputStreamWriter;
importjava.io.Writer;
importjava.net.MalformedURLException;
importjava.net.URL;
importorg.apache.pdfbox.pdmodel.PDDocument;
importorg.apache.pdfbox.util.PDFTextStripper;
publicclassPdfReader{
publicvoidreadFdf(Stringfile)throwsException{
//是否排序
booleansort=false;
//pdf文件名
StringpdfFile=file;
//輸入文本文件名稱
StringtextFile=null;
//編碼方式
Stringencoding="UTF-8";
//開始提取頁數
intstartPage=1;
//結束提取頁數
intendPage=Integer.MAX_VALUE;
//文件輸入流,生成文本文件
Writeroutput=null;
//內存中存儲的PDFDocument
PDDocumentdocument=null;
try{
try{
//首先當作一個URL來裝載文件,如果得到異常再從本地文件系統//去裝載文件
URLurl=newURL(pdfFile);
//注意參數已不是以前版本中的URL.而是File。
document=PDDocument.load(pdfFile);
//獲取PDF的文件名
StringfileName=url.getFile();
//以原來PDF的名稱來命名新產生的txt文件
if(fileName.length()>4){
FileoutputFile=newFile(fileName.substring(0,fileName
.length()-4)
+".txt");
textFile=outputFile.getName();
}
}catch(MalformedURLExceptione){
//如果作為URL裝載得到異常則從文件系統裝載
//注意參數已不是以前版本中的URL.而是File。
document=PDDocument.load(pdfFile);
if(pdfFile.length()>4){
textFile=pdfFile.substring(0,pdfFile.length()-4)
+".txt";
}
}
//文件輸入流,寫入文件倒textFile
output=newOutputStreamWriter(newFileOutputStream(textFile),
encoding);
//PDFTextStripper來提取文本
PDFTextStripperstripper=null;
stripper=newPDFTextStripper();
//設置是否排序
stripper.setSortByPosition(sort);
//設置起始頁
stripper.setStartPage(startPage);
//設置結束頁
stripper.setEndPage(endPage);
//調用PDFTextStripper的writeText提取並輸出文本
stripper.writeText(document,output);
}finally{
if(output!=null){
//關閉輸出流
output.close();
}
if(document!=null){
//關閉PDFDocument
document.close();
}
}
}
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
PdfReaderpdfReader=newPdfReader();
try{
//取得E盤下的SpringGuide.pdf的內容
pdfReader.readFdf("d:\b.pdf");
}catch(Exceptione){
e.printStackTrace();
}
}
}
㈢ java 將圖片生成pdf 問題
在Java中生成PDF文檔時,你可以使用iText庫來處理圖片並將其轉換為PDF。具體來說,你可以通過以下步驟完成這一任務。首先,你需要創建一個PDF文檔對象,例如:Document doc = new Document(null, 0, 0, 0, 0);。然後,你需要通過指定圖片路徑獲取圖片對象,例如:Image image = Image.getInstance(imgPath);。接著,你需要實例化PdfWriter對象,將文檔與輸出流關聯,例如:PdfWriter.getInstance(doc, fos);。
除此之外,你需要打開文檔進行寫入操作,並添加圖片到文檔中。打開文檔的方法為:doc.open();。接著,你可以將圖片添加到文檔中,例如:doc.add(image);。最後,記得關閉文檔以確保所有數據都被正確寫入輸出流,例如:doc.close();。
在實際操作中,你可能會遇到一些問題,比如圖片大小和格式不兼容的問題。為了解決這些問題,你可以在獲取圖片對象時使用一些額外的參數進行調整,例如:Image image = Image.getInstance(imgPath, null, 100, null);。這里,100代表的是縮放比例,你可以根據需要進行調整。
另外,如果你的圖片較多,或者需要頻繁生成PDF文檔,建議使用iText的流式處理方法,這可以提高生成PDF的效率。同時,為了確保生成的PDF文檔質量,你還可以通過設置文檔的邊距、字體等屬性來優化文檔的外觀。
總之,使用iText庫生成PDF文檔是一個相對簡單的過程,只要遵循正確的步驟和方法,你就能成功地將圖片轉換為PDF文件。
㈣ Java如何使用Java創建一個空的PDF文檔
package com.yii;import java.io.IOException;import org.apache.pdfbox.pdmodel.PDDocument;import org.apache.pdfbox.pdmodel.PDPage;// 需要下 apache pdfbox包和apache.commons.loggin烏,下載地址:http://pdfbox.apache.org/download.cgi 和 http://commons.apache.org/proper/commons-logging/download_logging.cgi// 在本示例中下載使用的是:pdfbox-2.0.7.jar // 將下載的pdfbox-2.0.7.jar添加到Eclipse項目依懶庫中。// 右鍵點擊:"java_apache_pdf_box"->"Bulid Path"->"Add External Artchives...",然後選篤下載的"pdfbox-2.0.7.jar"和"commons-logging-1.2.jar"文件 public class CreatingEmptyPdf {
public static void main(String args[]) throws IOException {
// Creating PDF document object
PDDocument document = new PDDocument();
// Add an empty page to it
document.addPage(new PDPage());
// Saving the document
document.save("F:/worksp/javaexamples/java_apache_pdf_box/BlankPdf.pdf");
System.out.println("PDF created");
// Closing the document
document.close();
}}
㈤ java 如何訪問pdf文件
在Java中,訪問PDF文件並提取其文本內容需要使用PDFBox庫。首先,你需要導入必要的類,如FileInputStream,PDDocument,PDFParser和PDFTextStripper。以下是一個簡單的示例代碼:
假設你的PDF文件路徑為"F:/pdf/網易技術部的MySQL中文資料.pdf"。創建一個名為PDFReader的類,該類包含一個名為GetTextFromPdf的方法,該方法接收一個文件名作為參數,並返回PDF文件中的純文本內容。在方法內部,首先創建一個FileInputStream對象,然後使用PDFParser解析該文件。接著,通過PDDocument對象獲取PDF文檔的內容,最後使用PDFTextStripper提取文本。示例代碼如下:
java
import java.io.*;
import org.pdfbox.pdmodel.PDDocument;
import org.pdfbox.pdfparser.PDFParser;
import org.pdfbox.util.PDFTextStripper;
public class PDFReader {
public static String file_path = "F:/pdf/網易技術部的MySQL中文資料.pdf";
// 獲取PDF內純文本信息
public String GetTextFromPdf(String filename) throws Exception {
FileInputStream instream = new FileInputStream(filename);
// 根據指定文件創建輸入流
PDFParser parser = new PDFParser(instream);
// 創建PDF解析器
parser.parse();
// 執行PDF解析過程
PDDocument pdfdocument = parser.getPDDocument();
// 獲取解析器的PDF文檔對象
PDFTextStripper pdfstripper = new PDFTextStripper();
// 生成PDF文檔內容剝離器
String contenttxt = pdfstripper.getText(pdfdocument);
// 利用剝離器獲取文檔
System.out.println("文件長度 : " + contenttxt.length() + "\n");
return contenttxt;
}
public static void main(String args[]) {
PDFReader pdfbox = new PDFReader();
// 生成PDFBoxHello對象
try {
// 獲取文檔純文本內容
String doctext = pdfbox.GetTextFromPdf(file_path);
System.out.println("文件內容 : ");
System.out.println(doctext);
System.out.println("文件結束 . ");
} catch (Exception e) {
e.printStackTrace();
}
}
}
這段代碼首先通過FileInputStream打開PDF文件,然後利用PDFParser解析該文件,之後通過PDDocument獲取PDF文檔對象,並使用PDFTextStripper提取文本內容。需要注意的是,為了使用這些類,你需要在項目中引入PDFBox庫。
這個例子展示了如何使用Java讀取PDF文件中的文本。通過這種方式,你可以將PDF文檔轉換為純文本,方便進一步處理或分析。當然,你也可以根據需要對代碼進行調整,以滿足特定的需求。
㈥ Java如何將Word文件轉成PDF文件
在Java中使用iText庫將Word文件轉換成PDF文件,並不是直接的一步操作。相反,它涉及將Word文檔的內容提取出來,然後使用iText將這些內容轉換成PDF格式。這里我們以一個簡單的例子來說明如何使用Java和iText庫生成一個PDF文件。
首先,我們創建一個名為Document的對象實例,這代表了我們的PDF文檔的基本結構。接下來,我們創建一個Writer與Document對象關聯,這使得我們可以將文檔的內容寫入到指定的文件中。
具體步驟如下:
1. 建立Document對象的實例:
Document document = new Document();
2. 建立Writer與Document對象關聯:
PDFWriter.getInstance(document, new FileOutputStream("Helloworld.PDF"));
3. 打開文檔:
document.open();
4. 向文檔中添加內容:
document.add(new Paragraph("Hello World"));
5. 關閉文檔:
document.close();
通過上述步驟,可以生成一個名為「Helloworld.PDF」的文件,其內容為「Hello World」。這里我們只是簡單地添加了一個段落,但在實際應用中,你可以添加更多的內容,例如表格、圖片等,使得生成的PDF文檔更加豐富。
值得注意的是,要實現從Word文檔到PDF文件的轉換,你可能需要使用額外的庫或者API來讀取Word文檔的內容,然後再將其轉換成iText可以處理的格式。這通常涉及到使用Apache POI這樣的庫來讀取Word文檔的內容,然後再將其寫入到PDF文檔中。
在完成所有步驟後,你將得到一個完整的PDF文件,可以使用任何PDF查看器來打開和查看。
總之,雖然上述步驟簡單地展示了如何使用Java和iText生成一個基本的PDF文件,但在實際操作中,轉換Word文件到PDF可能需要更復雜的處理步驟。
㈦ Java如何使用Java向PDF頁面中添加文本
試試這個教程,需要依賴免費版的Spire.Pdf.jar包
importjava.awt.*;
importjava.awt.geom.Point2D;
importjava.awt.geom.Rectangle2D;
importjava.io.*;
importcom.spire.pdf.PdfPageBase;
importcom.spire.pdf.graphics.*;
{
publicstaticvoidmain(String[]args)throwsFileNotFoundException,IOException{
//創建PdfDocument對象
PdfDocumentdoc=newPdfDocument();
//添加一頁
PdfPageBasepage=doc.getPages().add();
//標題文字
Stringtitle="標題";
//創建單色畫刷對象
PdfSolidBrushbrush1=newPdfSolidBrush(newPdfRGBColor(Color.BLUE));
PdfSolidBrushbrush2=newPdfSolidBrush(newPdfRGBColor(Color.BLACK));
//創建TrueType字體對象
PdfTrueTypeFontfont1=newPdfTrueTypeFont(newFont("ArialUnicodeMS",Font.PLAIN,14),true);
PdfTrueTypeFontfont2=newPdfTrueTypeFont(newFont("ArialUnicodeMS",Font.PLAIN,10),true);
//創建PdfStringFormat對象
PdfStringFormatformat1=newPdfStringFormat();
format1.setAlignment(PdfTextAlignment.Center);//設置文字居中
//使用drawString方法繪制標題文字
page.getCanvas().drawString(title,font1,brush1,newPoint2D.Float(page.getActualBounds(true).width/2,0),format1);
//從txt文件讀取內容到字元串
Stringbody=readFileToString("C:\Users\Administrator\Desktop\bodyText.txt");
//創建PdfStringFormat對象
PdfStringFormatformat2=newPdfStringFormat();
format2.setParagraphIndent(20);//設置段首縮進
//創建Rectangle2D對象
Rectangle2D.Floatrect=newRectangle2D.Float(0,30,page.getActualBounds(true).width,page.getActualBounds(true).height);
//使用drawString方法在矩形區域繪制主體文字
page.getCanvas().drawString(body,font2,brush2,rect,format2);
//保存到PDF文檔
doc.saveToFile("ouput.pdf");
}
//自定義方法讀取txt文件內容到字元串
(Stringfilepath)throwsFileNotFoundException,IOException{
StringBuildersb=newStringBuilder();
Strings="";
BufferedReaderbr=newBufferedReader(newFileReader(filepath));
while((s=br.readLine())!=null){
sb.append(s+" ");
}
br.close();
Stringstr=sb.toString();
returnstr;
}
}
㈧ java開發後端怎麼做word和pdf的導出
Java後端導出Word和PDF文檔,可以通過以下方式實現:
Word文檔的導出: 選用工具:使用Apache POI包。 實現流程: 設置模板:首先,需設置固定格式的Word文檔模板,將需要動態填充的內容以特定符號替代。 讀取並替換:通過Java代碼讀取Word模板,將模板中的符號替換為實際的數據內容。 生成文檔:完成替換後,將生成最終的Word文檔並導出。
PDF文檔的導出: 選用工具:使用第三方庫如iText或PDFBox。 實現功能: 數據轉換:這些庫能夠將Java中的數據轉換為PDF文件。 個性化設置:支持添加頁眉、頁腳、水印等個性化內容,以滿足不同的導出需求。 生成並導出:完成設置後,生成PDF文件並導出。
總結:通過選用適當的工具包,Java後端能夠高效地實現Word和PDF文檔的導出功能。