1.获取pdf单页,及所有内容
python
import fitz # PyMuPDF
# 打开 PDF 文件
pdf_path = r"/data2/ljsang/0106/0725_Self-organization-of-plasticity-and-specialization-in-a-primi_2022_Cell-Syst.pdfπÇÉσö>>Σ╕ǵ╖ÿσ<<¥σ║ùΘô║∩╝ÜΦë╛τ▒│σ¡ªτñ╛πÇæ.pdf"
doc = fitz.open(pdf_path)
# 获取第一页
page = doc.load_page(0)
# 提取页面中的文本信息(以字典形式返回)
text_dict = page.get_text("dict")
# 遍历文本块
for block in text_dict["blocks"]:
# 检查是否为文本块(type == 0)
if block["type"] == 0: # 0 表示文本块
# 遍历行
for line in block["lines"]:
# 遍历字符片段
for span in line["spans"]:
text = span["text"] # 文本内容
font_size = span["size"] # 字号大小
font_name = span["font"] # 字体名称
print(f"文本: {text}, 字号: {font_size}, 字体: {font_name}")
else:
print(f"跳过非文本块,类型: {block['type']}")
python
import fitz # PyMuPDF
# 定义 PDF 文件路径
pdf_path = r"/data2/66.pdf"
# 打开 PDF 文件
with fitz.open(pdf_path) as pdf:
# 获取 PDF 的总页数
total_pages = len(pdf)
print(f"PDF 文件总页数: {total_pages}")
# 遍历每一页
for page_num in range(total_pages):
print(f"正在处理的页码为 {page_num + 1}...")
# 获取当前页
page = pdf.load_page(page_num)
# 提取文本内容
text = page.get_text("text")
if text:
print("提取的文本内容:")
print(text)
else:
print("该页无文本内容。")
2.获取每篇pdf内容,以及DOI号
python
import fitz # PyMuPDF
import re
import os
# 正则表达式匹配 DOI 号
doi_pattern = re.compile(r'https?://(?:dx\.)?doi\.org/10\.\d{4}/[^/\s]+')
# 检查 PDF 是否包含 DOI 号
has_doi = False
doi_numbers = []
# PDF 文件路径
pdf_path = r"/data2/ljsang/0106/0725_Self-organization-of-plasticity-and-specialization-in-a-primi_2022_Cell-Syst.pdfπÇÉσö>>Σ╕ǵ╖ÿσ<<¥σ║ùΘô║∩╝ÜΦë╛τ▒│σ¡ªτñ╛πÇæ.pdf"
# 使用 fitz 打开 PDF 文件
pdf_document = fitz.open(pdf_path)
# 遍历每一页
for page_num in range(len(pdf_document)):
page = pdf_document.load_page(page_num) # 加载页面
text = page.get_text() # 提取文本内容
# 检查文本中是否包含 DOI 号
if text:
dois = doi_pattern.findall(text)
if dois:
has_doi = True
doi_numbers.extend(dois)
# 输出结果
print("DOI 号列表:", doi_numbers)
print("是否包含 DOI 号:", has_doi)