pdftotext —— Linux中將PDF文件轉化為Text
安裝 pdftotext 到 CentOS:
yum install poppler-utils
將pdf轉化為text: 將php-manual.pdf 轉化為 php-manual.txt:
pdftotext php-manual.pdf php-manual.txt
只轉化前 5 頁和后 10 頁:
pdftotext -f 5 -l 10 php-manual.pdf php-manual.txt
轉化加密過的pdf文件:
pdftotext -upw 'password' php-manual.pdf php-manual.txt
讀取pdf內容
pdftotext 1.pdf
讀取pdf字數
pdftotext 1.pdf - | wc -w
命令后面加 - 2>&1 輸出報錯信息
pdftotext 1.pdf - 2>&1
php 調用 pdftotext
shell_exec('pdftotext 1.pdf - | wc -w ');
在命令行中輸入
pdftotext [選項] [文件PDF文件] [文本]
描述
pdftotext將PDF轉換為純文本。
pdftotext讀取PDF文件,將PDF文件轉換為純文本文件。如果對文本文件沒有很特別的要求,那么pdftotext可以將PDF轉換為純文本文件。得到的文本文件是標準輸出。
選項
下面許多選項可以在配置文件中配置。下面列出了對應命令行選項的詳細介紹。
-f 數字
設置開始轉換的頁數
-l 數字
設置結束轉換的頁數
-layout
保持原始布局(盡最大的可能)。默認是格式化了原本的布局(斷字,列格式等)同時按順序給出文本。如果 -fixed選項被使用那么線內的字符間距將由指定的字符間距來確定。
-table
類似于原始布局模式,但優(yōu)化表格數據,以保持行和列目標的對齊(將額外插入空格)。如果 -fixed選項被使用那么線內的字符間距將由指定的字符間距來確定。
-lineprinter
行打印模式,使用了一個嚴格的固定字符間距和固定高度的布局。就是說文檔內容被分割到不同的格子中。如果網格間距小于實際字符的大小,結果將有額外空格。如果網格間距大于實際字符的大小,結果將丟失空格。格子可以使用-fixed和-linespacing選項。如果這兩個選項都沒有使用,那么pdftotext將嘗試給出一個合適的間距。
-raw
文本文件將保持內容流的順序。這取決與pdf是如何生成的。這個選項可能有用可能沒用
-fixed 數字
指定字符間距(字符寬度),在原始布局,表格和行打印模式中使用。這是忽略在所有其他模式。
-linespacing 數字
指定行空間,在原始布局,表格和行打印模式中使用。這是忽略在所有其他模式。
-clip
文本創(chuàng)建布局時會自動換行。這有助于表格中內聯模式的文本自動換行。
-enc 編碼格式
設置輸出時的編碼。這編碼格式必須用unicode圖集的命令行(詳見 xpdfrc(5))編碼名稱是區(qū)分大小寫的。默認為“l(fā)atin1”
[配置文件: textEncoding]
-eol unix | dos | mac
設置最后文本輸出格式。
[配置文件: textEOL]
-nopgbrk
不要插入頁面之間的中斷(表單中的字符)。
[配置文件: textPageBreaks]
-opw 密碼
指定PDF文件所有者密碼。提供這將繞過所有的安全限制。
-upw 密碼
指定PDF文件用戶密碼。
-q
不輸出任何錯誤信息。
[配置文件: errQuiet]
-cfg 配置文件
指定配置文件。
-v
輸出版權和版本信息。
-h
輸出有用的信息。(-help 和–help是相當的)
BUGS
一些PDF文件內容字體的編碼不明晰,所以無法從中讀取信息到文本文件。
出錯代碼
Xpdf出錯是代碼的含義
0 正常
1 打開PDF出錯
2 打開輸出文件出錯
3 PDF權限相關錯誤
99 其它錯誤