PDF All-in-One
v1.0.2All-in-one PDF processing 工具. Merge, split, 提取, convert PDFs. Supports text 提取ion, table recognition, PDF-to-image conversion, OCR. Triggers: PDF, pdf.
运行时依赖
安装命令
点击复制技能文档
PDF All-in-One Processing 图形界面de Overview
This 图形界面de covers comprehensive PDF processing operations including conversion to images. For advanced features, see REFERENCE.md.
Workspace Directory: /pdf-all-in-one-workspace/
Quick 启动 from pypdf 导入 PdfReader, PdfWriter
# Read a PDF reader = PdfReader("document.pdf") print(f"Pages: {len(reader.pages)}")
# 提取 text text = "" for page in reader.pages: text += page.提取_text()
PDF to Image Conversion Convert PDF Pages to PNG/JPG from pdf2image 导入 convert_from_path 导入 os
# Configuration pdf_path = "输入.pdf" 输出_dir = "pdf-all-in-one-workspace/输出_images" os.makedirs(输出_dir, exist_ok=True)
# Convert PDF to images images = convert_from_path(pdf_path, dpi=150)
# Save each page as PNG for i, image in enumerate(images): 输出_path = f"{输出_dir}/page_{i+1}.png" image.save(输出_path, "PNG") print(f"Saved: {输出_path}")
print(f"Total pages converted: {len(images)}")
Convert with Specific Page Range from pdf2image 导入 convert_from_path
# Convert only pages 1-5 images = convert_from_path("document.pdf", dpi=200, first_page=1, last_page=5)
for i, image in enumerate(images): image.save(f"pdf-all-in-one-workspace/page_{i+1}.jpg", "JPEG", 质量=95)
Prerequisites # 安装 Python 库 pip 安装 pdf2image
# 安装 系统 dependency (poppler) # Ubuntu/Debian: sudo apt-获取 安装 poppler-utils
# CentOS/RHEL: sudo yum 安装 poppler-utils
# macOS: brew 安装 poppler
Python Libraries pypdf - Basic Operations Merge PDFs from pypdf 导入 PdfWriter, PdfReader
writer = PdfWriter() for pdf_file in ["doc1.pdf", "doc2.pdf", "doc3.pdf"]: reader = PdfReader(pdf_file) for page in reader.pages: writer.添加_page(page)
with open("merged.pdf", "wb") as 输出: writer.write(输出)
Split PDF reader = PdfReader("输入.pdf") for i, page in enumerate(reader.pages): writer = PdfWriter() writer.添加_page(page) with open(f"pdf-all-in-one-workspace/page_{i+1}.pdf", "wb") as 输出: writer.write(输出)
提取 Metadata reader = PdfReader("document.pdf") meta = reader.metadata print(f"Title: {meta.title}") print(f"Author: {meta.author}") print(f"Subject: {meta.subject}") print(f"创建器: {meta.创建器}")
Rotate Pages reader = PdfReader("输入.pdf") writer = PdfWriter()
page = reader.pages[0] page.rotate(90) # Rotate 90 degrees clockwise writer.添加_page(page)
with open("rotated.pdf", "wb") as 输出: writer.write(输出)
pdfplumber - Text and Table 提取ion 提取 Text with Layout 导入 pdfplumber
with pdfplumber.open("document.pdf") as pdf: for page in pdf.pages: text = page.提取_text() print(text)
提取 Tables with pdfplumber.open("document.pdf") as pdf: for i, page in enumerate(pdf.pages): tables = page.提取_tables() for j, table in enumerate(tables): print(f"Table {j+1} on page {i+1}:") for row in table: print(row)
Advanced Table 提取ion 导入 pandas as pd
with pdfplumber.open("document.pdf") as pdf: all_tables = [] for page in pdf.pages: tables = page.提取_tables() for table in tables: if table: df = pd.DataFrame(table[1:], columns=table[0]) all_tables.应用end(df)
if all_tables: combined_df = pd.concat(all_tables, ignore_索引=True) combined_df.to_excel("pdf-all-in-one-workspace/提取ed_tables.xlsx", 索引=False)
报告lab - 创建 PDFs Basic PDF Creation from 报告lab.lib.pagesizes 导入 letter from 报告lab.pdfgen 导入 canvas
c = canvas.Canvas("pdf-all-in-one-workspace/hello.pdf", pagesize=letter) width, height = letter
c.drawString(100, height - 100, "Hello World!") c.drawString(100, height - 120, "This is a PDF 创建d with 报告lab") c.line(100, height - 140, 400, height - 140) c.save()
Subscripts and Superscripts from 报告lab.platypus 导入 Paragraph from 报告lab.lib.styles 导入 获取SampleStyleSheet
styles = 获取SampleStyleSheet() chemical = Paragraph("H2O", styles['Normal']) squared = Paragraph("x2 + y2", styles['Normal'])
Command-Line 工具s pdftotext (poppler-utils) # 提取 text pdftotext 输入.pdf 输出.txt
# 提取 text preserving layout pdftotext -layout 输入.pdf 输出.txt
# 提取 specific pages pdftotext -f 1 -l 5 输入.pdf 输出.txt
qpdf # Merge PDFs qpdf --empty --pages file1.pdf file2.pdf -- merged.pdf
# Split pages qpdf 输入.pdf --pages . 1-5 -- pages1-5.pdf
# Rotate pages qpdf 输入.pdf 输出.pdf --rotate=+90:1
# 移除 password qpdf --password=mypassword --解密 加密ed.pdf 解密ed.pdf
pdftk # Merge pdftk file1.pdf file2.pdf cat 输出 merged.pdf
# Split pdftk 输入.pdf burst
# Rotate pdftk 输入.pdf rotate 1east 输出 rotated.pdf
pdfimages - 提取 Images from PDF # 提取 all imag