OSXを使用していますが、pdfファイルをテキストに変換できるようにしたいと考えています。
無料のアプリケーションでこれができるようにしたいと思っています。
OSXを使用していますが、pdfファイルをテキストに変換できるようにしたいと考えています。
無料のアプリケーションでこれができるようにしたいと思っています。
回答:
Homebrewを使用してxpdfをインストールして使用するために使用した手順を次に示します。
Homebrewの依存関係をインストールします。
xcode-select --install
WebサイトからHomebrewをインストールします。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Homebrewのインストールを完了するように指示されていることを行います。
Homebrewが満足し、仕様どおりに機能していることを確認します。
brew doctor
次に、xpdfとその依存関係をインストールします。
brew install Caskroom/cask/xquartz
brew install xpdf
最後に、xpdfスイートに付属のパッケージpdftotextを使用します。
pdftotext Some_Document.pdf Some_Document.txt
最初のファイル名は既存のPDFです。2番目は宛先です。結果は、(明らかに古い)バージョンのAdobe Acrobatよりもはるかに優れていました。編集:Adobe Acrobatの新しい(2019)バージョンは、同様に悪い結果を示しています。
xquartz
はのコンソールツールには必要ないと思いますxpdf
。さらに、そこにあるpoppler
のフォークxpdf
はるかに積極的に維持されているようだが:github.com/scraperwiki/scraperwiki-python/issues/...
複数の方法。
Googleドキュメントを使用します(Googleアカウントが必要になります)
Automatorを使用します(多少の作業が必要です)
Automatorを使用して、PDFからテキストを抽出し、テキストまたはRTFドキュメントとして保存できるワークフローを作成できます。
またはApp Storeのアプリ(PDFからテキストなど)
xpdf
ポートでインストールしたもの:
port install xpdf
含まれるもの:
xpdf-pdftotext
画像からではなく、テキストファイルからのPDFファイルに必要な処理を行います。
xpdf-pdftotext PDF_file text_file
テキストをコピーして別のドキュメントに貼り付けることができるはずです。すべてのテキストを選択するには
これを試してみて、テキストが貼り付けられず、空白行がたくさんある場合は、まずPDFを新しいPDFに印刷してみてください。
この新しいPDFで上記のプロセスを試してください。私のために働いた!
次の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()
if pdfDoc
ステートメントの後の2行をに置き換えprint(pdfDoc.string())
ます。