ほんじゃら堂

めんどくさい仕事をラクにする作業自動化レシピ集

GroovyでPDFファイル内のテキストを取得する

PDFファイルの検索なんかに使えそう。 OCRではなく、PDF作成時にインデックス化されたテキスト情報を取得する。 pdfboxを使っているので、Javaでも同じような処理で実装可能。

今回はページ数と全テキストの取得のみだけど、 pdfboxの機能で色々な情報を取り出せそう。

pdf_text_search.groovy

@Grab(group='org.apache.pdfbox', module='pdfbox', version='1.8.8')

def pdfPath = '<PDFファイルのパス>'

import org.apache.pdfbox.pdfparser.PDFParser
import org.apache.pdfbox.pdmodel.PDDocument
import org.apache.pdfbox.util.PDFTextStripper
import org.apache.pdfbox.util.TextPosition

def pp = new PDFParser(new FileInputStream(pdfPath))
pp.parse()
def doc = pp.getPDDocument()
def pageCount = doc.getNumberOfPages()
println pageCount

def stripper = new PDFTextStripper()
def text = stripper.getText(doc)
println text