1. 使用PyPDF2库:
from PyPDF2 import PdfFileReader
打开PDF文件
pdf_file = open('example.pdf', 'rb')
pdf_reader = PdfFileReader(pdf_file)
获取PDF文件的页数
num_pages = pdf_reader.numPages
遍历每一页并显示文本内容
for page_num in range(num_pages):
page = pdf_reader.getPage(page_num)
text = page.extract_text()
print(text)
关闭文件
pdf_file.close()
2. 使用pdfplumber库:
import pdfplumber
with pdfplumber.open('example.pdf') as pdf:
for page in pdf.pages:
print(page.extract_text())
3. 使用PyMuPDF库(需要安装PyQt5以显示PDF):
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, QFileDialog
from PyQt5.QtGui import QPainter, QImage
from PyQt5.QtCore import Qt
class PDFViewer(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle('PDF Viewer')
self.setGeometry(100, 100, 800, 600)
self.file_menu = self.menuBar().addMenu('文件')
self.open_action = QAction('打开', self)
self.open_action.triggered.connect(self.showDialog)
self.file_menu.addAction(self.open_action)
self.page_up_action = QAction('上一页', self)
self.page_up_action.setShortcut('Down')
self.page_up_action.triggered.connect(self.pages_up)
self.file_menu.addAction(self.page_up_action)
self.current_page = 0
self.document = None
def showDialog(self):
self.fname, _ = QFileDialog.getOpenFileName(self, '选择PDF文件', '.', 'Text Files (*.pdf)')
if self.fname != '':
self.load_pdf(self.fname)
def load_pdf(self, file_path):
self.document = pymupdf.open(file_path)
self.current_page = 0
self.update()
def pages_up(self):
if self.current_page > 0:
self.current_page -= 1
self.update()
def paintEvent(self, event):
if self.document is not None:
page = self.document.load_page(self.current_page)
image = page.get_image()
if image is not None:
img = QImage(image['image'])
painter = QPainter(self)
painter.drawImage(0, 0, img)
if __name__ == '__main__':
app = QApplication([])
viewer = PDFViewer()
viewer.show()
app.exec_()
请选择适合您需求的方法,并确保已安装相应的Python库。