Skip to content
Automation
Skill

/wps-pdf-merge-split

PDF合并拆分。把好几个PDF合并成一个文件,或者把一个大PDF每页拆开, 也可以只提取第3-5页、第8页这样的指定页面。支持旋转和重新排序。 用于帮助用户处理PDF文件。当用户提到PDF合并、PDF拆分、提取页面时触发。 Merges, splits, extracts, and reorders PDF pages.

From plugin
bwkyd-wps-skills
842 skills
Install
$ npx -y skills add Bwkyd/wps-skills --skill wps-pdf-merge-split --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/wps-pdf-merge-split

Context preview

The summary Claude sees to decide when to auto-load this skill.

PDF合并拆分。把好几个PDF合并成一个文件,或者把一个大PDF每页拆开, 也可以只提取第3-5页、第8页这样的指定页面。支持旋转和重新排序。 用于帮助用户处理PDF文件。当用户提到PDF合并、PDF拆分、提取页面时触发。 Merges, splits, extracts, and reorders PDF pages.

SKILL.md

wps-pdf-merge-split.SKILL.md
name: wps-pdf-merge-split
description: |
  PDF合并拆分。把好几个PDF合并成一个文件,或者把一个大PDF每页拆开,
  也可以只提取第3-5页、第8页这样的指定页面。支持旋转和重新排序。
  用于帮助用户处理PDF文件。当用户提到PDF合并、PDF拆分、提取页面时触发。
  Merges, splits, extracts, and reorders PDF pages.
license: MIT
user-invocable: true
argument-hint: '[操作类型] [文件路径]'
allowed-tools: 'Read, Grep, Glob, Bash, Write, Edit'
metadata:
  author: BWKYD
  title: PDF合并拆分
  description_zh: 合并多个PDF为一个,或按页拆分PDF、提取指定页面
  tags:
    - PDF
    - 合并
    - 拆分
    - 文件处理
    - WPS
  version: 1.0.1
  license: MIT

PDF合并与拆分工具

合并多个PDF / 拆分单个PDF / 提取指定页面。

When to Use

  • 多个PDF合并成一个
  • 一个PDF拆分成多个
  • 提取PDF中某几页
  • 调整PDF页面顺序
  • 用户说"把这几个PDF合在一起""把第3-5页提取出来"

When NOT to Use

  • 提取PDF中的文字/表格 → 使用 `wps-pdf-extract`
  • PDF加水印 → 使用 `wps-watermark`

工作流程

Step 1: 确认操作

操作类型:
[1] 合并 → 多个PDF → 一个PDF
[2] 拆分 → 一个PDF → 每页一个PDF
[3] 提取 → 一个PDF → 提取指定页
[4] 重排 → 调整页面顺序
[5] 旋转 → 旋转指定页面

Step 2: 执行操作

import fitz  # PyMuPDF
import os
import glob as glob_mod

class PDFTool:
    """PDF合并拆分工具"""

    @staticmethod
    def merge(pdf_paths, output_path):
        """合并多个PDF"""
        result = fitz.open()
        for path in pdf_paths:
            doc = fitz.open(path)
            result.insert_pdf(doc)
            doc.close()
        result.save(output_path)
        result.close()
        return os.path.abspath(output_path)

    @staticmethod
    def split(pdf_path, output_dir):
        """拆分为单页PDF"""
        os.makedirs(output_dir, exist_ok=True)
        doc = fitz.open(pdf_path)
        files = []
        basename = os.path.splitext(os.path.basename(pdf_path))[0]
        for i in range(len(doc)):
            new_doc = fitz.open()
            new_doc.insert_pdf(doc, from_page=i, to_page=i)
            out = os.path.join(output_dir, f'{basename}_第{i+1}页.pdf')
            new_doc.save(out)
            new_doc.close()
            files.append(out)
        doc.close()
        return files

    @staticmethod
    def extract_pages(pdf_path, pages, output_path):
        """提取指定页面(pages为列表,从1开始)"""
        doc = fitz.open(pdf_path)
        result = fitz.open()
        for p in pages:
            result.insert_pdf(doc, from_page=p-1, to_page=p-1)
        result.save(output_path)
        result.close()
        doc.close()
        return os.path.abspath(output_path)

    @staticmethod
    def reorder(pdf_path, new_order, output_path):
        """重新排列页面(new_order为页码列表,从1开始)"""
        doc = fitz.open(pdf_path)
        result = fitz.open()
        for p in new_order:
            result.insert_pdf(doc, from_page=p-1, to_page=p-1)
        result.save(output_path)
        result.close()
        doc.close()
        return os.path.abspath(output_path)

    @staticmethod
    def rotate(pdf_path, pages, angle, output_path):
        """旋转指定页面(angle: 90/180/270)"""
        doc = fitz.open(pdf_path)
        for p in pages:
            doc[p-1].set_rotation(angle)
        doc.save(output_path)
        doc.close()
        return os.path.abspath(output_path)

    @staticmethod
    def get_info(pdf_path):
        """获取PDF信息"""
        doc = fitz.open(pdf_path)
        info = {
            'pages': len(doc),
            'title': doc.metadata.get('title', ''),
            'author': doc.metadata.get('author', ''),
            'file_size': os.path.getsize(pdf_path),
        }
        doc.close()
        return info

Step 3: 页码范围解析

支持的页码格式:
  "1,3,5"     → 第1、3、5页
  "1-5"       → 第1到5页
  "1-3,7,9-11" → 第1-3、7、9-11页
  "奇数页"    → 1,3,5,7...
  "偶数页"    → 2,4,6,8...
  "最后3页"   → 倒数3页
def parse_pages(page_str, total_pages):
    """解析页码范围"""
    if page_str == '奇数页':
        return list(range(1, total_pages + 1, 2))
    if page_str == '偶数页':
        return list(range(2, total_pages + 1, 2))
    if page_str.startswith('最后'):
        n = int(page_str.replace('最后', '').replace('页', ''))
        return list(range(total_pages - n + 1, total_pages + 1))

    pages = []
    for part in page_str.split(','):
        part = part.strip()
        if '-' in part:
            start, end = part.split('-')
            pages.extend(range(int(start), int(end) + 1))
        else:
            pages.append(int(part))
    return sorted(set(p for p in pages if 1 <= p <= total_pages))

Step 4: 交付

1. 生成处理后的PDF文件 2. 报告处理结果(页数、文件大小)

示例

# 合并PDF
/wps-pdf-merge-split 把report1.pdf、report2.pdf、report3.pdf合并成一个

# 拆分PDF
/wps-pdf-merge-split 把handbook.pdf每一页拆成单独的文件

# 提取页面
/wps-pdf-merge-split 提取contract.pdf的第3-5页和第8页

# 重新排序
/wps-pdf-merge-split 把presentation.pdf的页面顺序改成 1,3,2,4,5
Read more
Ships withbwkyd-wps-skills

42 个 WPS Office 办公自动化 Claude Code Skills 集合 一句话指令,让 Claude 帮你自动生成 Word / Excel / PPT / PDF 文档。

Get the whole plugin

Other skills on bwkyd-wps-skills.

wps-attendance
Skill

wps-attendance

考勤打卡统计。把考勤机导出的打卡数据丢进来,自动统计每个人的 迟到、早退、缺勤、加班时长,生成月度考勤汇总表,异常考勤自动标红。 用于帮助HR处理考勤数据。当用户提到考勤、打卡、迟到、加班统计时触发。 Attendance tracker - generates summary reports from…

wps-batch-convert
Skill

wps-batch-convert

文档批量格式转换。把一个文件夹里的Word全转文本、Excel全导出CSV、 Markdown转Word,支持docx/txt/xlsx/csv/md等格式批量互转,一次搞定。 用于帮助用户批量转换文档格式。当用户提到批量转换、格式转换、导出时触发。 Batch converts documents between…

wps-budget
Skill

wps-budget

预算表一键生成。部门年度预算、项目预算、活动经费预算,选个模板填数字就行, 小计合计公式自动写好,还有预算vs实际对比和执行率自动计算。 用于帮助财务和行政制作预算表。当用户提到预算、费用表、经费时触发。 Budget spreadsheet generator with formulas and variance…

wps-certificate
Skill

wps-certificate

证书奖状批量生成。给一份名单,批量生成荣誉证书、结业证书、聘书、感谢信, 每人一份独立文件,年终评优、培训结业、表彰活动必备工具。 用于帮助用户批量生成证书。当用户提到证书、奖状、聘书时触发。 Batch certificate/award generator from a list of recipients.

wps-chart
Skill

wps-chart

数据图表一键生成。不知道数据该用什么图表?告诉我你的数据和目的, 自动推荐最佳图表类型并生成,柱状图折线图饼图散点图都支持,还帮你调配色。 用于帮助用户制作数据可视化图表。当用户提到图表、柱状图、折线图、饼图时触发。 Chart generator - recommends best chart type and…

wps-cn-calendar
Skill

wps-cn-calendar

日历排班值班表。生成带法定节假日和调休标注的月度/年度日历表, 还能做三班倒/两班倒排班表和节假日值班安排,颜色区分不同班次一目了然。 用于帮助用户生成日历和排班表。当用户提到日历、排班、值班、节假日时触发。 Chinese calendar with holidays, shift scheduling, and…