Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
PythonでPDFをいじってみる
2015/11/02
岡山Python勉強会
@k5_yamayama
山手 恵悟(やまやま)
@k5_yamayama
岡山の某DBメーカー勤務
ユーザーCE→社内SE→企画開発→
→サーバー管理→営業に至る。
(これってフルスタック…?)
自己紹介
Okayama Engineers Community(通称:OITEC)
運営スタッフやってます。
岡山Python勉強会(通称:おっPy)
立ち上げスタッフ
主催者のはずの“#た”が福山に戻っちゃった
で現在は、ほぼ主催者状態。
コミュニティ
はじめに
今回は、Pythonを使ってPDFを操作してみよう
と思います。
注意事項
本セッションは、やまやま個人が調査・検証した
結果を発表するもので、間違いやこれにより損害
が生じても一切責任を負いませんのでご了承くだ
さい。
ちなみに
PDFの中身を取り出したいと思っ
たことがある人?
ちなみに
結構、中身の内容を操作したいと
思うことがあったので今回のネタ
にしました。
今日の目的とゴール
 目的
PythonでPDFのデータを操作する方法
を理解する。
 ゴール
実際に触ってみてどういった動きにな
るかやってみる。
PDFデータを操作するために必要なもの
Python(今回は2.7で…)
Pdfminer
PDF操作用Pythonモジュール
 PDF内にある情報を抽出するためのモジュール
 ライセンス形態は、MITライセンス
 日本語の対応もやっている
Pdfminer(http://urx2.nu/oXgp)
インストール
必要なモジュール
pdfminer
インストール
以下のURLよりzipファイルをダウンロード
https://github.com/euske/pdfminer/
$ python setup.py install
インストール確認は、pip freezeで…
動作確認
Quick Startから
$ python ~/pdf2txt.py ~/sample/simple1.pdf
Hello
World
Hello
World
H e l l o
W o r l d
H e l l o
W o r ...
ただし…
 このままだと日本語がまともに表示されません
 日本語に対応させるためには、CJKの登録をしな
いと文字化けを起こすのでまずはセットアップす
る
 ハマりどころはどこに何を置くかが最初わからず
困ったとこ
日本語の対応
 ~/lib/site-packages/pdfminer直下にcmap
フォルダを作成する
cd ~/lib/site-packages/pdfminer
mkdir cmap
日本環境の設定
以下のコマンドを実行
cd ~site-package
python .pdfminerpdfminer-mastertoolsconv_cmap.py -c B5=cp950 -c UniCNS-UTF8=utf-8
.pdf...
ポイント
 MACは、
 Windowsは、絶対パスで指定する必要がありこの
部分でかなり悩んだ
 ちなみに最後にあった項目は、韓国語の対応用な
ので今回はなくてもいいかも
make cmap
python setup.py install
実際に出力してみる
 動作確認の為に以下のコマンドを実行し、日本語が出力
されるかを確認
python ~pdf2txt.py -o c:workoutput.txt
~japaneseSample.pdf
主な出力オプション
 コマンドラインで出力する際に使用できるオプションが
様々ある。
-o:出力ファイル名指定
-p:PAGENO [,pageno,...] 抽出ページ番号のカンマ区切のリ
スト
(ページ番号は1から始まります。)
-c:出...
その他の機能
 その他のデバッグ機能としてdumppdf.pyコマンドがあ
ります。
$python ~/dumppdf.py -a ~/japanesesample2.pdf
デバッグ用の擬似xmlを出力したり中に埋め込まれた画像
を抽出し...
まとめ
 コマンドライン的には2つのみのシンプルな構成
 PDF内にあるテキストを抽出するには便利
 日本語の対応は、CMAPの設定が必要。設定時にパス
の指定に注意する必要がある(windows版は注意)
 デバッグ用のコマンドライン...
参考URL
pdfminer
http://www.unixuser.org/~euske/python/pdfminer/
Quiita 徹底攻略PDFオープンデータ。PDFMinerで始めるPDFテキスト分析
http://qiita.co...
ご清聴ありがとうございました。
Upcoming SlideShare
Loading in …5
×

Pythonでpdfをいじってみる

17,195 views

Published on

第21回 岡山Python勉強会のスライド

Published in: Technology
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Pythonでpdfをいじってみる

  1. 1. PythonでPDFをいじってみる 2015/11/02 岡山Python勉強会 @k5_yamayama
  2. 2. 山手 恵悟(やまやま) @k5_yamayama 岡山の某DBメーカー勤務 ユーザーCE→社内SE→企画開発→ →サーバー管理→営業に至る。 (これってフルスタック…?) 自己紹介
  3. 3. Okayama Engineers Community(通称:OITEC) 運営スタッフやってます。 岡山Python勉強会(通称:おっPy) 立ち上げスタッフ 主催者のはずの“#た”が福山に戻っちゃった で現在は、ほぼ主催者状態。 コミュニティ
  4. 4. はじめに 今回は、Pythonを使ってPDFを操作してみよう と思います。
  5. 5. 注意事項 本セッションは、やまやま個人が調査・検証した 結果を発表するもので、間違いやこれにより損害 が生じても一切責任を負いませんのでご了承くだ さい。
  6. 6. ちなみに PDFの中身を取り出したいと思っ たことがある人?
  7. 7. ちなみに 結構、中身の内容を操作したいと 思うことがあったので今回のネタ にしました。
  8. 8. 今日の目的とゴール  目的 PythonでPDFのデータを操作する方法 を理解する。  ゴール 実際に触ってみてどういった動きにな るかやってみる。
  9. 9. PDFデータを操作するために必要なもの Python(今回は2.7で…) Pdfminer
  10. 10. PDF操作用Pythonモジュール  PDF内にある情報を抽出するためのモジュール  ライセンス形態は、MITライセンス  日本語の対応もやっている Pdfminer(http://urx2.nu/oXgp)
  11. 11. インストール 必要なモジュール pdfminer
  12. 12. インストール 以下のURLよりzipファイルをダウンロード https://github.com/euske/pdfminer/ $ python setup.py install インストール確認は、pip freezeで…
  13. 13. 動作確認 Quick Startから $ python ~/pdf2txt.py ~/sample/simple1.pdf Hello World Hello World H e l l o W o r l d H e l l o W o r l d Scriptsファルダ内にある のでパスを指定
  14. 14. ただし…  このままだと日本語がまともに表示されません  日本語に対応させるためには、CJKの登録をしな いと文字化けを起こすのでまずはセットアップす る  ハマりどころはどこに何を置くかが最初わからず 困ったとこ
  15. 15. 日本語の対応  ~/lib/site-packages/pdfminer直下にcmap フォルダを作成する cd ~/lib/site-packages/pdfminer mkdir cmap
  16. 16. 日本環境の設定 以下のコマンドを実行 cd ~site-package python .pdfminerpdfminer-mastertoolsconv_cmap.py -c B5=cp950 -c UniCNS-UTF8=utf-8 .pdfminercmap Adobe-CNS1 .pdfminerpdfminer-mastercmaprsrccid2code_Adobe_CNS1.txt python .pdfminerpdfminer-mastertoolsconv_cmap.py -c GBK-EUC=cp936 -c UniGB- UTF8=utf-8 .pdfminercmap Adobe-GB1 .pdfminerpdfminer- mastercmaprsrccid2code_Adobe_GB1.txt python .pdfminerpdfminer-mastertoolsconv_cmap.py -c RKSJ=cp932 -c EUC=euc-jp -c UniJIS-UTF8=utf-8 .pdfminercmap Adobe-Japan1 .pdfminerpdfminer- mastercmaprsrccid2code_Adobe_Japan1.txt python .pdfminerpdfminer-mastertoolsconv_cmap.py -c KSC-EUC=euc-kr -c KSC- Johab=johab -c KSCms-UHC=cp949 -c UniKS-UTF8=utf-8 .pdfminercmap Adobe-Korea1 .pdfminerpdfminer-mastercmaprsrccid2code_Adobe_Korea1.txt cd pdfminerpdfminer-master python setup.py install
  17. 17. ポイント  MACは、  Windowsは、絶対パスで指定する必要がありこの 部分でかなり悩んだ  ちなみに最後にあった項目は、韓国語の対応用な ので今回はなくてもいいかも make cmap python setup.py install
  18. 18. 実際に出力してみる  動作確認の為に以下のコマンドを実行し、日本語が出力 されるかを確認 python ~pdf2txt.py -o c:workoutput.txt ~japaneseSample.pdf
  19. 19. 主な出力オプション  コマンドラインで出力する際に使用できるオプションが 様々ある。 -o:出力ファイル名指定 -p:PAGENO [,pageno,...] 抽出ページ番号のカンマ区切のリ スト (ページ番号は1から始まります。) -c:出力コーデックを指定します。 -t:タイプ(txt/html/xml/tag)※デフォルトはtxt -V:縦書きの検出を行う
  20. 20. その他の機能  その他のデバッグ機能としてdumppdf.pyコマンドがあ ります。 $python ~/dumppdf.py -a ~/japanesesample2.pdf デバッグ用の擬似xmlを出力したり中に埋め込まれた画像 を抽出したりできます。
  21. 21. まとめ  コマンドライン的には2つのみのシンプルな構成  PDF内にあるテキストを抽出するには便利  日本語の対応は、CMAPの設定が必要。設定時にパス の指定に注意する必要がある(windows版は注意)  デバッグ用のコマンドラインは、画像の抽出が可能 なのでうまく使えば部分的な処理が可能  ある程度細かいことをしようとするとPDFの構造を 理解する必要があるかも…
  22. 22. 参考URL pdfminer http://www.unixuser.org/~euske/python/pdfminer/ Quiita 徹底攻略PDFオープンデータ。PDFMinerで始めるPDFテキスト分析 http://qiita.com/nezuq/items/75e8366d68c66e56ff53
  23. 23. ご清聴ありがとうございました。

×