PDFファイルのページ数をカウントする高速スクリプトを作成しました。しかし、いくつかのファイルでは、それを読み取ることができず、Xrefテーブルのエラーをゼロでないインデックスで返します。基本的には、オブジェクトID(5.0)を期待し、オブジェクトID(4.0)を取得します。また、私はPythonのPyPDF2でスキャンしたPDFファイルのPDFページをカウントすると、外部参照テーブルが生成されず、0が割り出されます。
私のコードがある...(7.0)のような他のオブジェクトIDを持って、オブジェクトID(6.0)などを取得していますので、
from PyPDF2 import PdfFileReader
from pathlib import Path
import os
import math
import logging
numPages=0
workPath = input ('Please introduce your working directory: ')
print ('Your selected path is ' + workPath)
os.chdir (workPath.encode())
logging.basicConfig(filename='errrors.log',
level=logging.DEBUG,
format='%(asctime)s - %(levelname)s - %(message)s')
fout= open('PagesCount.txt', 'w', encoding="utf-8")
path_files = Path(workPath)
for file in path_files.glob('**/*.pdf'):
page_Count = 0
try:
with open(str(file), "br") as PDF:
try:
page_Count = PdfFileReader(PDF).getNumPages()
numPages = numPages + page_Count
print ('Pages in ' + str(file) + ': ' + str(page_Count) + ' pages')
fout.write ('Pages in ' + str(file) + ':\t' + str(page_Count) + ' pages\n')
except:
print('File {} cannot be read'.format(str(file)))
logging.error('File cannot be read:\t {}'.format(str(file)))
except:
logging.error('File is not processed: {}'.format(str(file)))
print ('Total number of pages:\t' + str(numPages) + ' pages')
fout.write ('Total number of pages:\t' + str(numPages) + ' pages\n')
、私がページをカウントしなければならないことが起こります多くのスキャンされたPDFファイルのうち、そのうちの約80%が上記のエラーのためにエラーファイルにフィルタリングされます。 Xrefテーブルがゼロインデックスエラーではないようにする方法はありますか?
ありがとうございます。
問題を示すサンプルファイルを共有した場合、手助けする方が簡単かもしれません。 – mkl
機密性の理由から私はサンプルファイルを共有できません:( しかし、問題を解決するには、strict = Falseというパラメータを追加することができました。ありがとうございました – TMikonos
* "パラメータstrict = False"あなたの答えでは、*エラーが発生するいくつかのファイルがまだあることを示しているように見える*より高い**ファイル数を開くことができることに言及しました。それらと一緒に、私はあなたがサンプルファイルを共有しなければならないと思います。 – mkl