Python pdf回転csv
6330 ワード
Python pdf回転csvバックグラウンド 依存環境 依存プライマリpythonパケット pdfminer
背景
依存環境
依存するプライマリpythonパッケージ
pdfminer
後でflaskを単独で話すので、ここでは主にpdfminerについて話します. pip install pdfminerを取り付ける.six を実現
ファイルの内容を簡単に読み取る機能で、複数ページの読み取りをサポートしています.area:読み取り内容の位置を制御します.2ページ目のデータの位置は1ページ目とは異なるので、再読み取りが必要です.
そしてCSVにデータを書き込む
以上でCSVファイルが生成され、あとはCSVファイルデータを取得すればよい.
プロジェクトアドレス:pdf 2 csv.
背景
( 、 、 ) , PDF , PDF, PHP pdf , Python。 pdf csv, csv 。
依存環境
Python 3.7.6
Java 1.8.0_121(tabula-py tabula-java , Java)
nignx flask , 80 , , nginx ,
依存するプライマリpythonパッケージ
flask==1.1.1
pdfminer.six==20200124 PDF
pdfminer
後でflaskを単独で話すので、ここでは主にpdfminerについて話します.
from pdfminer.high_level import extract_text
from pdfminer.pdfparser import PDFSyntaxError
def _parse(file_path, line_count=0):
""" , """
area = [266, 42.765625, 785.028125, 564.134375]
if line_count != 0:
area[2] = 3120.003125 + 31.2375 * line_count
dfs = tabula.read_pdf(file_path, pages="all", area=area)
num = len(dfs)
save_data = []
save_data.append(dfs[0])
if num == 0:
logging.error("no table found")
elif 1 < num:
for i in range(1, num):
area = [175, 42.765625, 785.028125, 564.134375]
area[2] = 3120.003125 + 31.2375 * line_count
dfs = tabula.read_pdf(file_path, pages=i + 1, area=didi_area)
save_data.append(dfs[0])
# , CSV
for i in range(0, num):
save_data[i].columns = [name.replace('\r', ' ') for name in save_data[i].columns]
return save_data
ファイルの内容を簡単に読み取る機能で、複数ページの読み取りをサポートしています.area:読み取り内容の位置を制御します.2ページ目のデータの位置は1ページ目とは異なるので、再読み取りが必要です.
そしてCSVにデータを書き込む
# data PDF
# output_path csv
def _output_csv(data, output_path):
""" DataFrame API, CSV """
# BOM , Excel CSV
with open(output_path, mode='wb') as output:
output.write(BOM_UTF8)
with open(output_path, mode='a', newline='') as output:
for i in range(0, len(data)):
data[i].to_csv(output, index=False)
以上でCSVファイルが生成され、あとはCSVファイルデータを取得すればよい.
プロジェクトアドレス:pdf 2 csv.