ホームページ  >  記事  >  バックエンド開発  >  Pythonを使用してpdfをtxtに出力する例

Pythonを使用してpdfをtxtに出力する例

不言
不言オリジナル
2018-04-23 15:16:592164ブラウズ

以下はPythonを使ってpdfをtxtに出力する方法の例です。参考になると思います。見に来てみましょう

1週間前にクラスメートからこのことについて尋ねられました。以前ファーウェイのコンテストに参加していたので、コンテスト後に見てみたところ、pdfminerパッケージを使用する必要があると言われました。それでインストールしてみましたが、インストールプロセスは非常に簡単でした:

sudo pip install pdfminer;

プロセス中にエラーはありませんでした。呼び出し方については、pdfminer ライブラリをよく勉強していないので、Baidu を起動してみました...

公式ドキュメント: http://www.unixuser.org/~euske/python/pdfminer/ Index.html

はすべてPythonで書かれています。 (バージョン 2.4 以降に適用)

PDF ドキュメントを解析、分析、変換します。

PDF-1.7仕様のサポート。 (ほぼ)

CJK 言語と縦書きスクリプトのサポート。

さまざまなフォントタイプ (Type1、TrueType、Type3、および CID) のサポート。

基本暗号化 (RC4) のサポート。

PDFからHTMLへの変換。

アウトライン(TOC)の抽出。

タグコンテンツの抽出。

テキストブロックをグループ化して元のレイアウトを再構築します。

いくつかの基本クラス

PDFParser: ファイルからデータを取得します

PDFDocument: 取得したデータを保存し、PDFParser は相互に関連しています

PDFPageInterpreter はページコンテンツを処理します

PDFDevice はそれを必要なものに変換します

PDFResourceManager の形式は、フォントや画像などの共有リソースを保存するために使用されます。

簡単な実装

test.pdfを読み取り、output.txtとして出力します:

# -*- coding: utf-8 -*-  
from pdfminer.pdfparser import PDFParser 
from pdfminer.pdfdocument import PDFDocument 
from pdfminer.pdfpage import PDFPage 
from pdfminer.pdfpage import PDFTextExtractionNotAllowed 
from pdfminer.pdfinterp import PDFResourceManager 
from pdfminer.pdfinterp import PDFPageInterpreter 
from pdfminer.pdfdevice import PDFDevice 
from pdfminer.layout import * 
from pdfminer.converter import PDFPageAggregator 
import os 
fp = open('test.pdf', 'rb') 
#来创建一个pdf文档分析器 
parser = PDFParser(fp) 
#创建一个PDF文档对象存储文档结构 
document = PDFDocument(parser) 
# 检查文件是否允许文本提取 
if not document.is_extractable: 
 raise PDFTextExtractionNotAllowed 
else: 
 # 创建一个PDF资源管理器对象来存储共赏资源 
 rsrcmgr=PDFResourceManager() 
 # 设定参数进行分析 
 laparams=LAParams() 
 # 创建一个PDF设备对象 
 # device=PDFDevice(rsrcmgr) 
 device=PDFPageAggregator(rsrcmgr,laparams=laparams) 
 # 创建一个PDF解释器对象 
 interpreter=PDFPageInterpreter(rsrcmgr,device) 
 # 处理每一页 
 for page in PDFPage.create_pages(document): 
  interpreter.process_page(page) 
  # 接受该页面的LTPage对象 
  layout=device.get_result() 
  for x in layout: 
   if(isinstance(x,LTTextBoxHorizontal)): 
    with open('output.txt','a') as f: 
     f.write(x.get_text().encode('utf-8')+'\n')

関連推奨事項:

PDFを画像に変換するPythonメソッド


以上がPythonを使用してpdfをtxtに出力する例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。