1 安装免费 Python PDF 库 可以通过 pip 直接安装pip install Spire.Pdf.Free安装后在代码中导入所需模块即可from spire.pdf import * from spire.pdf.common import *注意该库的免费版本对处理的 PDF 页数有限制每次最多 10 页本文示例均基于免费版的功能范围。1.2 基本工作流程使用该库读取 PDF 的一般步骤为创建PdfDocument对象。调用LoadFromFile()方法加载 PDF 文件。通过Pages集合访问每一页。使用对应提取器如PdfTextExtractor、PdfImageHelper提取内容。关闭文档释放资源。2. 读取 PDF 基本信息页数、页面尺寸等在提取具体内容前通常需要先了解文档的元数据。from spire.pdf import PdfDocument # 加载 PDF 文档 pdf PdfDocument() pdf.LoadFromFile(sample.pdf) # 获取页数 page_count pdf.Pages.Count print(f总页数: {page_count}) # 遍历每一页获取页面尺寸 for i in range(page_count): page pdf.Pages.get_Item(i) width pdf.Size.Width height page.Size.Height print(f第 {i1} 页尺寸: {width} x {height}) pdf.Close()输出示例总页数: 5 第 1 页尺寸: 595.0 x 842.0 第 2 页尺寸: 595.0 x 842.0 ...3. 提取 PDF 中的文本文本提取是最常见的需求。PdfTextExtractor类提供了逐页提取文本的方法。from spire.pdf import * def extract_text_from_pdf(pdf_path, start_page1, end_pageNone): pdf PdfDocument() pdf.LoadFromFile(pdf_path) total_pages pdf.Pages.Count if end_page is None or end_page total_pages: end_page total_pages # 免费版最多处理前10页此处限制输出 end_page min(end_page, 10) for i in range(start_page - 1, end_page): page pdf.Pages.get_Item(i) extractor PdfTextExtractor(page) # 提取文本可以设置提取参数如是否保留空白布局 options PdfTextExtractOptions() options.IsExtractAllText True # 提取全部文本忽略表格/图片区域 text extractor.ExtractText(options) print(f--- 第 {i1} 页文本 ---) print(text) print(\n) pdf.Close() extract_text_from_pdf(sample.pdf, end_page2)说明如果 PDF 中的文字为扫描图片无文本层则无法直接提取需要配合 OCR 技术该库不提供 OCR 功能。4. 提取 PDF 中的图片Free Spire.PDF 提供了PdfImageHelper来提取页面中的图片资源。import os from spire.pdf import * def extract_images_from_pdf(pdf_path, output_dirimages): 提取 PDF 中所有图片并保存到指定文件夹 注意免费版最多处理前 10 页 # 创建输出目录 if not os.path.exists(output_dir): os.makedirs(output_dir) # 加载 PDF 文档 pdf PdfDocument() pdf.LoadFromFile(pdf_path) # 免费版限制最多处理前 10 页 page_limit min(pdf.Pages.Count, 10) # 准备图片提取器 image_helper PdfImageHelper() # 遍历页面 for page_index in range(page_limit): page pdf.Pages.get_Item(page_index) images_info image_helper.GetImagesInfo(page) # 保存当前页的所有图片 for i, img_info in enumerate(images_info): # Image.Save() 方法会根据扩展名自动保存为 PNG 格式 img_info.Image.Save(f{output_dir}/page_{page_index}_img_{i}.png) print(f已保存: page_{page_index}_img_{i}.png) pdf.Close() print(f图片提取完成共处理 {page_limit} 页图片保存在 {output_dir} 目录下) # 使用示例 extract_images_from_pdf(sample.pdf)5. 提取 PDF 中的表格该库未提供直接导出表格为 CSV/Excel 的一键方法但可以借助PdfTableExtractor获取表格结构然后手动解析。from spire.pdf import * def extract_tables_from_pdf(pdf_path): pdf PdfDocument() pdf.LoadFromFile(pdf_path) # 免费版最多处理前10页 page_limit min(pdf.Pages.Count, 10) extractor PdfTableExtractor(pdf) for i in range(page_limit): page pdf.Pages.get_Item(i) # 提取当前页的所有表格 tables extractor.ExtractTable(i) if tables: print(f第 {i1} 页发现 {len(tables)} 个表格) for t_idx, table in enumerate(tables): print(f 表格 {t_idx1}:) rows table.GetRowCount() cols table.GetColumnCount() print(f 行数: {rows}, 列数: {cols}) # 获取表头第一行 if rows 0: header [] for c in range(cols): header.append(table.GetText(0, c)) print(f 表头: {header}) # 获取前3行数据示例 for r in range(min(rows, 4)): row_data [] for c in range(cols): row_data.append(table.GetText(r, c)) print(f 第{r1}行: {row_data}) else: print(f第 {i1} 页未发现表格) pdf.Close() extract_tables_from_pdf(sample.pdf)