無料でpdfをテキストに変換しようとしています


16

OSXを使用していますが、pdfファイルをテキストに変換できるようにしたいと考えています。

無料のアプリケーションでこれができるようにしたいと思っています。


2
すでにテキストが含まれているPDFからテキストを抽出しようとしていますか?(つまり、コピーしてピースを貼り付けることができます)または、画像コンテンツに含まれるテキストを認識しようとしていますか?
アランシュトコ14年

free-ocr.com助けを?
ティム

回答:


13

Homebrewを使用してxpdfをインストールして使用するために使用した手順を次に示します。

  1. Homebrewの依存関係をインストールします。

    xcode-select --install
    
  2. WebサイトからHomebrewをインストールします。

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    
  3. Homebrewのインストールを完了するように指示されていることを行います。

  4. Homebrewが満足し、仕様どおりに機能していることを確認します。

    brew doctor
    
  5. 次に、xpdfとその依存関係をインストールします。

    brew install Caskroom/cask/xquartz
    
    brew install xpdf
    
  6. 最後に、xpdfスイートに付属のパッケージpdftotextを使用します。

    pdftotext Some_Document.pdf Some_Document.txt
    

最初のファイル名は既存のPDFです。2番目は宛先です。結果は、(明らかに古い)バージョンのAdobe Acrobatよりもはるかに優れていました。編集:Adobe Acrobatの新しい(2019)バージョンは、同様に悪い結果を示しています。


2
xquartzはのコンソールツールには必要ないと思いますxpdf。さらに、そこにあるpopplerのフォークxpdfはるかに積極的に維持されているようだが:github.com/scraperwiki/scraperwiki-python/issues/...
イェルーンWiert Pluimers


4

xpdf ポートでインストールしたもの:

port install xpdf

含まれるもの:

xpdf-pdftotext

画像からではなく、テキストファイルからのPDFファイルに必要な処理を行います。

xpdf-pdftotext PDF_file text_file

1
少なくともHomeBrewによってインストールされるコマンドは、「pdftotext」です。
フラッシュシェリダン

@FlashSheridan「pdftotext」とhomebrewを使用してインストールする方法に関する回答を投稿することをお勧めしますか?コメントはいつでも削除される可能性があります(検索にも表示されません)。
nohillside

4

現在のバージョンのAdobe Reader(11.0.09)の[ファイル]メニューには[他として保存]項目があります。

オプションの1つはTextです。

このアプリは無料で、テキストファイルを出力するのに十分な仕事をします。新しいドキュメントのすべての画像は、.txt形式で失われます。


1

テキストをコピーして別のドキュメントに貼り付けることができるはずです。すべてのテキストを選択するには

「プレビュー」でPDFを開き、

  • 「編集|すべて選択」を選択します
  • 「編集|コピー」を選択します

別のアプリに移動して、「テキスト編集」と言います

  • 「編集|貼り付け」を選択します

これを試してみて、テキストが貼り付けられず、空白行がたくさんある場合は、まずPDFを新しいPDFに印刷してみてください。

  • プレビューで、「ファイル|印刷」を選択します
  • 右下で、「PDF | PDFとして保存」を選択します
  • これにより、新しいPDFがエクスポートされます。

この新しいPDFで上記のプロセスを試してください。私のために働いた!

PS:Microsoft Wordをお持ちの場合、PDFをWordで開くことができる場合があります


1
これはPDFドキュメントに実際にテキストコンテンツが含まれている場合に機能しますが、フォーマットを維持せず、場合によっては必要なテキストと思われるものとともにガベージテキストを生成します。これは他の方法でも同じかもしれませんが、指摘することが重要だと感じました。
user3439894

疑いもなく-確かに完璧ではなく、あなたが言ったことすべてに完全に同意します。私は以前に気付いたオプションとしてここにそれを追加するだけで、それは何もインストールすることなく私のために働いた;
Brad Parks

また、ほとんどの場合に機能することにも同意しますが、ページ番号、ドキュメントに関係のないフッターの詳細、さらに悪いことに、大きなドキュメントでの無限スクロールはこれを不十分なソリューションにします。5ページ未満の場合は考慮しますが、必要なテーブルのほとんどは、ExcelまたはSQLを吐き出すことを拒否する研究サイトのPDFからのものであるため、このオプションは機能しません。
Tmanok

同意した!ユースケースには実行可能なオプションではありません
Brad Parks

1

次のPythonスクリプトは、PDFドキュメントのテキストを.txtファイルに出力します。(注:データがPDF形式で保持される方法のため、テキストが必ずしも「論理的な」人間が読める順序であるという保証はありません。)

このスクリプトは、(例えば、コマンドライン上のそれへの引数として与え任意のPDFファイルのテキストファイルを作成しますpdf2txt.py myPDF.pdf)か、にシェルタイプの設定、Automatorのの「ファイル名を指定して実行シェルスクリプト」アクションで使用できるのpythonパスの入力を「引数として」へ。その後、Quick ActionまたはDropAppとして使用できます。

#!/usr/bin/python
# coding: utf-8

import os, sys
from Quartz import PDFDocument
from CoreFoundation import (NSURL, NSString)
NSUTF8StringEncoding = 4

def pdf2txt():
    for filename in sys.argv[1:]:   
        inputfile =filename.decode('utf-8')
        shortName = os.path.splitext(filename)[0]
        outputfile = shortName+" text.txt"
        pdfURL = NSURL.fileURLWithPath_(inputfile)
        pdfDoc = PDFDocument.alloc().initWithURL_(pdfURL)
        if pdfDoc :
            pdfString = NSString.stringWithString_(pdfDoc.string())
            pdfString.writeToFile_atomically_encoding_error_(outputfile, True, NSUTF8StringEncoding, None)

if __name__ == "__main__":
   pdf2txt()

これは箱から出して動作します(つまり-Pythonライブラリなどをインストールする必要はありませんでした!)-テキストの生のダンプですが、時にはそれが必要です-ファイルは現在のディレクトリに保存されることに注意してください(コマンドライン)、標準出力に出ない
Brad Parks

@BradParks入力ファイルと同じフォルダーに保存する必要があります。コマンド引数からファイルパスを取得します。どのように供給していますか?
ベンウィギー

ああ...私は同じフォルダにいたので、それに気づくことはありませんでした-私の唯一の本当の目的は、それが標準出力にならないこと、そしてそれが機能することです!ありがとう!
ブラッドパーク

1
if pdfDocステートメントの後の2行をに置き換えprint(pdfDoc.string())ます。
ベンウィギー

ああ、これは文字通りApple Pythonディストリビューションが何かに役立つことが判明した初めてのようです!! 回答ありがとうございます!!
ジェレミー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.