import win32com.client
import comtypes.client
import pdfplumber
def CountPages(Filepath):
word = win32com.client.Dispatch('Word.Application')
wdFormatPDF = 17
in_file = Filepath
out_file = "out.pdf"
word = comtypes.client.CreateObject('Word.Application')
doc = word.Documents.Open(in_file)
doc.SaveAs(out_file, FileFormat=wdFormatPDF)
doc.Close()
word.Quit()
with pdfplumber.open(out_file) as pdf:
count=0
for page in pdf.pages:
out=page.extract_text()
if "申请号:" in out and "审 查 意 见 通 知 书" in out:
count=0
count+=1
print(page.extract_text())
print(count,"页")
return count
python大量的库都只能处理docx文件,并且稳定性堪忧。
所以可以考虑将doc文件直接转化成pdf文件,这样可以完整的1:1复刻页面内容,并且每一页的内容都是完美复刻,不会变形。
然后用pdfplumber读取每页的页面内容即可,这里不要用pypdf2提取的文本是乱码,pdfplumber这个库绝对是上上选。
通过上述的方法可以根据word的页面来精确提取其文本内容。