1. 程式人生 > >java-pdfbox2.0.8讀取pdf文字和圖片

java-pdfbox2.0.8讀取pdf文字和圖片

package per.qy.dexter.fileoperate;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import java.util.UUID;

import javax.imageio.ImageIO;

import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDResources;
import org.apache.pdfbox.pdmodel.encryption.InvalidPasswordException;
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
import org.apache.pdfbox.text.PDFTextStripper;
import org.junit.Test;

public class PdfTest {

	@Test
	public void testPdf() {
		String path = "D:\\temp\\temp\\test.pdf";
		File file = new File(path);
		InputStream is = null;
		PDDocument document = null;
		try {
			if (path.endsWith(".pdf")) {
				document = PDDocument.load(file);
				int pageSize = document.getNumberOfPages();
				// 一頁一頁讀取
				for (int i = 0; i < pageSize; i++) {
					// 文字內容
					PDFTextStripper stripper = new PDFTextStripper();
					// 設定按順序輸出
					stripper.setSortByPosition(true);
					stripper.setStartPage(i + 1);
					stripper.setEndPage(i + 1);
					String text = stripper.getText(document);
					System.out.println(text.trim());
					System.out.println("-=-=-=-=-=-=-=-=-=-=-=-=-");

					// 圖片內容
					PDPage page = document.getPage(i);
					PDResources resources = page.getResources();
					Iterable<COSName> cosNames = resources.getXObjectNames();
					if (cosNames != null) {
						Iterator<COSName> cosNamesIter = cosNames.iterator();
						while (cosNamesIter.hasNext()) {
							COSName cosName = cosNamesIter.next();
							if (resources.isImageXObject(cosName)) {
								PDImageXObject Ipdmage = (PDImageXObject) resources.getXObject(cosName);
								BufferedImage image = Ipdmage.getImage();
								FileOutputStream out = new FileOutputStream("D:\\temp\\temp\\" + UUID.randomUUID() + ".png");
								try {
									ImageIO.write(image, "png", out);
								} catch (IOException e) {
								} finally {
									try {
										out.close();
									} catch (IOException e) {
									}
								}
							}
						}
					}
				}
			}
		} catch (InvalidPasswordException e) {
		} catch (IOException e) {
		} finally {
			try {
				if (document != null) {
					document.close();
				}
				if (is != null) {
					is.close();
				}
			} catch (IOException e) {
			}
		}
	}
	
}


相關推薦

java-pdfbox2.0.8讀取pdf文字圖片

package per.qy.dexter.fileoperate; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java

Python操作PDF-文字圖片提取(使用PyPDF2PyMuPDF)

### PDF檔案格式 如今,可移植文件格式(PDF)屬於最常用的資料格式。在1990年,PDF文件的結構由Adobe定義。PDF格式的思想是,對於通訊過程中涉及的雙方(建立者,作者或傳送者以及接收者)而言,傳輸的資料/文件看起來完全相同。 ### 工具和庫 適用於Python的PDF工具,模組和庫的可

java讀取pdf檔案的圖片文字內容

引用的jar包: pdfbox-1.8.13.jar fontbox-1.8.13.jar public static void main(String[] args) {PDFReader pdfReader1 = new PDFReader();pdfReader1.

Java 讀取PDF文字內容

本文將介紹如何在Java應用程式中讀取PDF檔案的文字內容。 在Java應用程式中讀取PDF,我們可以藉助第三方PDF控制元件,本文所使用的控制元件是免費Java PDF元件Free Spire.PDF for JAVA。 在使用以下程式碼前,你需要下載Free Spire.PDF fo

Apache PdfBox 2.0.X 版本解析PDF文件(文字圖片

        最近專案開發過程涉及到了pdf檔案的內容的解析和和內容的提取入庫操作,其中pdf的解析採用了開源的apache pdfbox 外掛,版本選用的是最新版本的2.0.8版本,現將簡單的讀取解析的步驟記錄如下:            Apache下載連結如下:   

Java 讀取Word批註中的文字圖片

本文將介紹讀取Word批註的方法,包括讀取Word批註中的文字及圖片。關於操作Word批註的方法還可以參考這兩篇文章:Java 新增、回覆、修改、刪除Word批註;Java 給Word指定字串新增批註。下面將通過Java程式碼來演示如何讀取批註。 工具使用:Word類庫(Free Spire.Doc for

JAVA------20.圖片中插文字圖片

dap 圖片 logs test http 合成 over cal ray import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.Image; im

jweixin-1.1.0.js微信接口“分享給朋友”文字圖片配置

數據 req fig 否則 通用 nonce log 形式 調用 在npm官網找到了:微信官方 js-sdk CommonJS 版https://www.npmjs.com/package/weixin-js-sdk 步驟一:引入JS文件在需要調用JS接口的頁面引入如下JS

java-poi3.17讀取word文字圖片

package per.qy.dexter.fileoperate; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java

jweixin-1.1.0.js微信介面“分享給朋友”文字圖片配置

步驟一:引入JS檔案在需要呼叫JS介面的頁面引入如下JS檔案,(支援https):http://res.wx.qq.com/open/js/jweixin-1.0.0.js備註:支援使用 AMD/CMD 標準模組載入方法載入步驟二:通過config介面注入許可權驗證配置所

java圖片驗證碼包括文字圖片的旋轉

java圖片驗證碼包括文字圖片的旋轉: 此例子演示的是兩位數的加減運算,需要的可以通過自己的修改獲得更多的方式: 或者我上傳的資源中也有其他的兩種方式供選擇:http://download.csdn.net/detail/huitoukest/8043711 packag

PDF檔案如何修改文字圖片

  如今辦公文件的型別有很多種,像表格型別的excel檔案,文字型別的word文件。這些都是比較常見的,但如果遇到pdf格式的文件的話該如何處理呢,下面就來講下編輯pdf檔案的方法和步驟。 ​   首先需要準備好工具,pdf檔案與其他格式文件不同,一般檢視pdf用pdf閱

java以UTF-8編碼寫入文字檔案

String json = "要寫入的JSON字串"; String file = "D:\\1.txt"; FileOutputStream writerStream = new FileOutputStream(file);     BufferedWriter wr

ios24--改變button的文字圖片

nor center span 文本 init align log view lstat // // ViewController.m // 09-UIButton內部子控件的調整 // // Created by xiaomage on 15/12/30. //

PDF編輯器中文版怎麼修改PDF文字以及圖片

PDF檔案的修改是需要用到PDF編輯工具的,PDF編輯工具的使用在工作中,甚至是生活中都會使用的到,那麼,PDF編輯器中文版怎麼修改PDF文字以及圖片呢,估計有很多的小夥伴都好奇其中的操作吧,那就看看下面的文章,沒準就會了哦。 1.開啟並執行迅捷PDF編輯器https://www.xunjiep

jQuery怎麼獲取到富文字ueditor編輯器裡面的文字圖片內容

1、建立編輯器 UE.getEditor('editor', { initialFrameWidth:"100%" //初始化選項 }) 精簡版 UE.getEditor('editor') 2、刪除編輯器 UE.getEditor('editor').destroy(); 3、

C#呼叫系統預設印表機列印文字圖片

本方法適用於有列印驅動的印表機列印。直接用電腦預設印表機進行列印文字和圖片。 首先安裝印表機驅動,然後在裝置和印表機中將要用的印表機設為預設印表機,然後呼叫該方法即可 Pulic Void Print() { PrintService ps = new PrintService();

MFC入門(三)-- MFC圖片/文字控制元件(迴圈顯示文字圖片的小程式)

慣例附上前幾個部落格的連結: MFC入門(一)簡單配置:http://blog.csdn.net/zmdsjtu/article/details/52311107 MFC入門(二)讀取輸入字元:http://blog.csdn.net/zmdsjtu/article/details/52315088 &

文字圖片垂直居中對齊

讓文字和圖片垂直居中對齊(經常會用的,但是記不住的佈局。。) 給img和文字所在的父容器設定如下css即可。 1.flex佈局 .box{ display:flex; align-items: center;//子元素垂直居中 justify-cont

一個方便快捷gif線上水印製作(支援文字圖片

有時候我們要給gif加上水印的確不太方便,需要獲取每一幀下來然後進行處理。 這個時候自己弄得話花費時間也長。 使用起來也很簡單,製作文字水印時候只需要上傳gif檔案就行,等待伺服器處理完成自動下載預覽。 製作圖片水印時候需要先傳圖片檔案(png,jpg),上傳成功後