马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 blackantt 于 2023-5-25 21:36 编辑
pymupdf 升级到1.22.3 后,问题解决
pdf见 https://t.wss.ink/f/baa9uyq87sz
import sys, fitz
fname = 'Whose-Button-Is-It-FKB_CC-BY-SA.pdf'
doc = fitz.open(fname)
text = ''
#for page in doc:
for i,page in enumerate(doc, start=1):
#text += page.getText()
print('page---------' + str(i) ,'\n', page.getText())
PyMuPDF库通过getText()方法来提取PDF中的文本,它包含了所有的内容,包括页面标题、制作信息以及其他元数据,这可能是你看到的多出的"Title page"、"Imprint page"和时间等信息的来源。
如果你希望仅导出PDF的可见文本内容,可以考虑使用其他的PDF处理库,如PDFMiner。PDFMiner库更专注于从PDF中提取可见的文本,而不是元数据。
如果你还是希望使用PyMuPDF,并希望更准确地控制提取的文本,你可以使用 extract_text() 函数代替 getText() 。这个函数提供了更多的选项,可以帮助你准确地控制要提取的文本。以下是一个例子:
import sys, fitz
fname = 'Whose-Button-Is-It-FKB_CC-BY-SA.pdf'
doc = fitz.open(fname)
text = ''
#for page in doc:
for i,page in enumerate(doc, start=1):
# Use extract_text instead of getText
text_blocks = page.extract_text().split('\n')
for block in text_blocks:
if not block.startswith("Title page") and not block.startswith("Imprint page"):
print('page---------' + str(i) ,'\n', block)
这个例子中, extract_text() 首先将页面的文本分割成一个个的块,然后我们遍历这些块,忽略那些以"Title page"或者"Imprint page"开头的块。
不过,这只是一个简单的例子,你可能需要进一步调整代码以满足你的特定需求。希望这个信息能够帮到你。
|