Token导航 LogoToken导航TokenDH.com
研究检索权限需确认clawhub未标认证来源可访问clear审计通过

a3-pdf-splitterA3 PDF splitter 搜索

Agent Skill

a3-pdf-splitter 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

4,015

周安装

169

GitHub Stars

公开资料未说明

下载量

1,406
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:a3-pdf-splitter(A3 PDF splitter 搜索)
来源仓库:https://github.com/boxertan/a3-pdf-splitter
安装命令:
openclaw skills install a3-pdf-splitter
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install a3-pdf-splitter

简介

智能A3试卷PDF切分工具,自动识别试卷中间的空白位置进行切分,将A3格式的试卷PDF转换为A4格式方便打印。当用户提到"切分A3试卷"、"A3转A4"、"PDF切分"、"试卷打印"、"拆分试卷PDF"等相关需求时必须使用此技能。

SKILL.md

name
a3-pdf-splitter
description
智能A3试卷PDF切分工具,自动识别试卷中间的空白位置进行切分,将A3格式的试卷PDF转换为A4格式方便打印。当用户提到"切分A3试卷"、"A3转A4"、"PDF切分"、"试卷打印"、"拆分试卷PDF"等相关需求时必须使用此技能。

A3 PDF智能切分工具

功能说明

将A3格式的试卷PDF文件智能切分为A4格式,方便打印。工具会自动识别页面中间的最佳空白位置进行切割,避免切到文字内容。

  • 支持横向A3页面:左右切分为两个A4页面
  • 支持纵向A3页面:上下切分为两个A4页面
  • 400DPI高分辨率输出,保证打印质量
  • 自动保留原PDF的所有页面顺序

依赖安装

使用前需要安装依赖包:

pip install pypdfium2 pillow

使用方法

当用户需要切分A3试卷PDF时,按照以下步骤操作:

  1. 获取输入PDF文件路径和输出路径
  2. 调用切分脚本进行处理
  3. 告知用户处理结果和输出文件位置

示例调用

from split_a3_smart import split_a3_to_a4_smart

# 切分A3试卷PDF
split_a3_to_a4_smart("输入文件路径.pdf", "输出文件路径.pdf")

脚本代码

import pypdfium2 as pdfium
from PIL import Image
import os

def find_best_split_position(img, is_horizontal=True):
    """
    智能寻找最佳切割位置:在中间区域寻找最空白的列/行
    is_horizontal=True:左右切(找最佳列);False:上下切(找最佳行)
    """
    # 转为灰度图像
    gray_img = img.convert('L')
    pixels = list(gray_img.getdata())
    width, height = gray_img.size
    
    if is_horizontal:
        # 左右切:计算每列的像素和,和越大越空白(255是纯白色)
        middle_start = int(width * 0.45)
        middle_end = int(width * 0.55)
        max_sum = -1
        best_x = middle_start
        
        for x in range(middle_start, middle_end):
            col_sum = 0
            for y in range(height):
                col_sum += pixels[y * width + x]
            if col_sum > max_sum:
                max_sum = col_sum
                best_x = x
        return best_x
    else:
        # 上下切:计算每行的像素和
        middle_start = int(height * 0.45)
        middle_end = int(height * 0.55)
        max_sum = -1
        best_y = middle_start
        
        for y in range(middle_start, middle_end):
            row_sum = 0
            for x in range(width):
                row_sum += pixels[y * width + x]
            if row_sum > max_sum:
                max_sum = row_sum
                best_y = y
        return best_y

def split_a3_to_a4_smart(input_path, output_path):
    # 打开PDF文件
    pdf = pdfium.PdfDocument(input_path)
    output_images = []
    
    for page_num in range(len(pdf)):
        page = pdf[page_num]
        width, height = page.get_size()
        
        # 渲染页面为高分辨率图像(400 DPI)
        scale = 400 / 72
        bitmap = page.render(scale=scale)
        img = bitmap.to_pil()
        
        # A3横向:左右切
        if width > height:
            split_x = find_best_split_position(img, is_horizontal=True)
            print(f"第{page_num+1}页最佳切割位置:x={split_x} (总宽度{img.width})")
            
            # 左半部分
            left_img = img.crop((0, 0, split_x, img.height))
            output_images.append(left_img)
            
            # 右半部分
            right_img = img.crop((split_x, 0, img.width, img.height))
            output_images.append(right_img)
        else:
            # A3纵向:上下切
            split_y = find_best_split_position(img, is_horizontal=False)
            print(f"第{page_num+1}页最佳切割位置:y={split_y} (总高度{img.height})")
            
            # 上半部分
            top_img = img.crop((0, 0, img.width, split_y))
            output_images.append(top_img)
            
            # 下半部分
            bottom_img = img.crop((0, split_y, img.width, img.height))
            output_images.append(bottom_img)
    
    # 保存为PDF
    if output_images:
        output_images[0].save(
            output_path,
            "PDF",
            resolution=400,
            save_all=True,
            append_images=output_images[1:]
        )
    
    print(f"\
处理完成!输出文件:{output_path}")
    print(f"原始页数:{len(pdf)},切分后页数:{len(output_images)}")

返回结果

处理完成后,告知用户:

  1. 输出文件的保存路径
  2. 原始页数和切分后的页数
  3. 每个页面的切割位置(可选)

注意事项

  • 输入文件必须是PDF格式
  • 输出文件路径需要有写入权限
  • 大文件处理可能需要较长时间,请耐心等待
  • 建议输出文件名包含"_A4切分版"等标识,方便区分

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

93.78%
按下载量换算1,319

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

权限需确认

当前来源未能明确判断权限范围,默认进入异常复核队列。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills