Communitygithub.com

aiskillstore/marketplace

Kit completo de manipulación de PDFs para extraer texto y tablas, crear nuevos PDFs, combinar/dividir documentos y manejar formularios. Ideal cuando Claude necesita rellenar formularios PDF o procesar, generar o analizar documentos PDF a escala.

¿Qué es marketplace?

Este skill proporciona un conjunto completo de herramientas y scripts para la manipulación programática de documentos PDF utilizando Python y herramientas de línea de comandos. Incluye bibliotecas como pypdf para operaciones básicas (combinar, dividir, rotar, extraer metadatos, proteger con contraseña), pdfplumber para extracción avanzada de texto y tablas, y reportlab para la creación de nuevos PDFs con múltiples páginas y estilos. También cubre herramientas CLI como pdftotext, qpdf y pdftk para tareas rápidas, y técnicas especializadas como OCR para PDFs escaneados, extracción de imágenes y adición de marcas de agua. El skill está diseñado para ser utilizado con Claude Code, Cursor, Codex o cualquier agente de IA que necesite procesar PDFs de forma automatizada. Su SKILL.md incluye ejemplos de código listos para copiar y una tabla de referencia rápida que mapea tareas comunes a las mejores herramientas y comandos, facilitando la selección del enfoque óptimo para cada caso de uso.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/aiskillstore/marketplace/tree/HEAD/skills/pdf

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Guía de Procesamiento de PDFs

Resumen

Esta guía cubre operaciones esenciales de procesamiento de PDFs utilizando bibliotecas de Python y herramientas de línea de comandos. Para características avanzadas, bibliotecas de JavaScript y ejemplos detallados, consulta reference.md. Si necesitas rellenar un formulario PDF, lee forms.md y sigue sus instrucciones.

Inicio rápido

from pypdf import PdfReader, PdfWriter

# Leer un PDF
reader = PdfReader("documento.pdf")
print(f"Páginas: {len(reader.pages)}")

# Extraer texto
texto = ""
for page in reader.pages:
    texto += page.extract_text()

Bibliotecas de Python

pypdf - Operaciones Básicas

Combinar PDFs

from pypdf import PdfWriter, PdfReader

writer = PdfWriter()
for archivo_pdf in ["doc1.pdf", "doc2.pdf", "doc3.pdf"]:
    reader = PdfReader(archivo_pdf)
    for page in reader.pages:
        writer.add_page(page)

with open("combinado.pdf", "wb") as output:
    writer.write(output)

Dividir PDF

reader = PdfReader("entrada.pdf")
for i, page in enumerate(reader.pages):
    writer = PdfWriter()
    writer.add_page(page)
    with open(f"pagina_{i+1}.pdf", "wb") as output:
        writer.write(output)

Extraer Metadatos

reader = PdfReader("documento.pdf")
meta = reader.metadata
print(f"Título: {meta.title}")
print(f"Autor: {meta.author}")
print(f"Asunto: {meta.subject}")
print(f"Creador: {meta.creator}")

Rotar Páginas

reader = PdfReader("entrada.pdf")
writer = PdfWriter()

page = reader.pages[0]
page.rotate(90)  # Rotar 90 grados en sentido horario
writer.add_page(page)

with open("rotado.pdf", "wb") as output:
    writer.write(output)

pdfplumber - Extracción de Texto y Tablas

Extraer Texto con Diseño

import pdfplumber

with pdfplumber.open("documento.pdf") as pdf:
    for page in pdf.pages:
        texto = page.extract_text()
        print(texto)

Extraer Tablas

with pdfplumber.open("documento.pdf") as pdf:
    for i, page in enumerate(pdf.pages):
        tablas = page.extract_tables()
        for j, tabla in enumerate(tablas):
            print(f"Tabla {j+1} en página {i+1}:")
            for fila in tabla:
                print(fila)

Extracción Avanzada de Tablas

import pandas as pd

with pdfplumber.open("documento.pdf") as pdf:
    todas_tablas = []
    for page in pdf.pages:
        tablas = page.extract_tables()
        for tabla in tablas:
            if tabla:  # Verificar si la tabla no está vacía
                df = pd.DataFrame(tabla[1:], columns=tabla[0])
                todas_tablas.append(df)

# Combinar todas las tablas
if todas_tablas:
    combined_df = pd.concat(todas_tablas, ignore_index=True)
    combined_df.to_excel("tablas_extraidas.xlsx", index=False)

reportlab - Crear PDFs

Creación Básica de PDF

from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas

c = canvas.Canvas("hola.pdf", pagesize=letter)
ancho, alto = letter

# Añadir texto
c.drawString(100, alto - 100, "¡Hola Mundo!")
c.drawString(100, alto - 120, "Este es un PDF creado con reportlab")

# Añadir una línea
c.line(100, alto - 140, 400, alto - 140)

# Guardar
c.save()

Crear PDF con Múltiples Páginas

from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, PageBreak
from reportlab.lib.styles import getSampleStyleSheet

doc = SimpleDocTemplate("informe.pdf", pagesize=letter)
styles = getSampleStyleSheet()
historia = []

# Añadir contenido
titulo = Paragraph("Título del Informe", styles['Title'])
historia.append(titulo)
historia.append(Spacer(1, 12))

cuerpo = Paragraph("Este es el cuerpo del informe. " * 20, styles['Normal'])
historia.append(cuerpo)
historia.append(PageBreak())

# Página 2
historia.append(Paragraph("Página 2", styles['Heading1']))
historia.append(Paragraph("Contenido para la página 2", styles['Normal']))

# Construir PDF
doc.build(historia)

Herramientas de Línea de Comandos

pdftotext (poppler-utils)

# Extraer texto
pdftotext entrada.pdf salida.txt

# Extraer texto conservando diseño
pdftotext -layout entrada.pdf salida.txt

# Extraer páginas específicas
pdftotext -f 1 -l 5 entrada.pdf salida.txt  # Páginas 1-5

qpdf

# Combinar PDFs
qpdf --empty --pages archivo1.pdf archivo2.pdf -- combinado.pdf

# Dividir páginas
qpdf entrada.pdf --pages . 1-5 -- paginas1-5.pdf
qpdf entrada.pdf --pages . 6-10 -- paginas6-10.pdf

# Rotar páginas
qpdf entrada.pdf salida.pdf --rotate=+90:1  # Rotar página 1 por 90 grados

# Eliminar contraseña
qpdf --password=micontrasena --decrypt cifrado.pdf descifrado.pdf

pdftk (si está disponible)

# Combinar
pdftk archivo1.pdf archivo2.pdf cat output combinado.pdf

# Dividir
pdftk entrada.pdf burst

# Rotar
pdftk entrada.pdf rotate 1east output rotado.pdf

Tareas Comunes

Extraer Texto de PDFs Escaneados

# Requiere: pip install pytesseract pdf2image
import pytesseract
from pdf2image import convert_from_path

# Convertir PDF a imágenes
imagenes = convert_from_path('escaneado.pdf')

# OCR cada página
texto = ""
for i, imagen in enumerate(imagenes):
    texto += f"Página {i+1}:\n"
    texto += pytesseract.image_to_string(imagen)
    texto += "\n\n"

print(texto)

Añadir Marca de Agua

from pypdf import PdfReader, PdfWriter

# Crear marca de agua (o cargar existente)
marca_agua = PdfReader("marca_agua.pdf").pages[0]

# Aplicar a todas las páginas
reader = PdfReader("documento.pdf")
writer = PdfWriter()

for page in reader.pages:
    page.merge_page(marca_agua)
    writer.add_page(page)

with open("marcado.pdf", "wb") as output:
    writer.write(output)

Extraer Imágenes

# Usando pdfimages (poppler-utils)
pdfimages -j entrada.pdf prefijo_salida

# Esto extrae todas las imágenes como prefijo_salida-000.jpg, prefijo_salida-001.jpg, etc.

Protección con Contraseña

from pypdf import PdfReader, PdfWriter

reader = PdfReader("entrada.pdf")
writer = PdfWriter()

for page in reader.pages:
    writer.add_page(page)

# Añadir contraseña
writer.encrypt("contraseñausuario", "contraseñapropietario")

with open("cifrado.pdf", "wb") as output:
    writer.write(output)

Referencia Rápida

TareaMejor HerramientaComando/Código
Combinar PDFspypdfwriter.add_page(page)
Dividir PDFspypdfUn archivo por página
Extraer textopdfplumberpage.extract_text()
Extraer tablaspdfplumberpage.extract_tables()
Crear PDFsreportlabCanvas o Platypus
Combinar desde línea de comandosqpdfqpdf --empty --pages ...
OCR de PDFs escaneadospytesseractConvertir a imagen primero
Rellenar formularios PDFpdf-lib o pypdf (ver forms.md)Ver forms.md

Próximos Pasos

  • Para uso avanzado de pypdfium2, consulta reference.md
  • Para bibliotecas de JavaScript (pdf-lib), consulta reference.md
  • Si necesitas rellenar un formulario PDF, sigue las instrucciones en forms.md
  • Para guías de solución de problemas, consulta reference.md

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

aiskillstore/marketplace

Create high-converting, visually distinctive landing pages. Use when building marketing pages, product launches, SaaS homepages, or any single-page conversion-focused website. Guides section-by-section composition with anti-AI-slop principles.

aiskillstore/marketplace

Auto-loaded context for Portfolio Buddy 2 development. Use for ANY task involving: React 19 development, TypeScript, portfolio analysis features, metrics calculations, trading strategy comparison, or working with the Portfolio Buddy 2 codebase. Contains tech stack, known issues, and architectural constraints.

aiskillstore/marketplace

Use when the user asks to "pre-launch check the landing page", "run a Quality-Score preflight", or "verify ad-to-page message match before launch"; produces an ad↔page continuity report — message-match gaps, above-the-fold check, page-speed read, form-friction count, mobile-render flags — as a pass/fix punch list. Not for redesigning or rewriting the page — use landing-optimizer; not for scoring the account or the RQS — use ad-account-auditor. 落地页体验预检/广告落地页一致性检查

aiskillstore/marketplace

Use when the user asks to "optimize our landing page for influencer traffic", "fix our promo-code landing page", or "improve conversion from a creator campaign"; produces a message-match audit, page-structure and social-proof recommendations, a promo-code/CTA conversion plan, and an A/B test roadmap. Not for measuring campaign results after launch — use performance-analyzer.

aiskillstore/marketplace

Audit a landing page, sales page or checkout page for conversion leaks and return a fix list ordered by expected revenue impact. Use when asked to review, critique or improve a landing page, sales page, opt-in page, product page or checkout flow, when conversion rate is low, when paid traffic is not converting, or when someone asks "why isn't this page converting" or wants a CRO / landing page review.

aiskillstore/marketplace

This skill helps users extract GitHub repository project details and contributor contact information using keywords, stars, and update dates. Agent should proactively apply this skill when users express needs like search for GitHub projects by keywords, find top open-source contributors in specific domains, extract developer contacts from GitHub repositories, discover trending repositories with high stars, gather contributor profiles and social links for tech recruiting, retrieve GitHub project descriptions and metrics, build developer communities by finding active contributors, search for repositories updated recently, collect personal website and Twitter links of developers, generate targeted leads for developer tools, or track active open-source contributors for collaboration.

aiskillstore/marketplace

Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.

aiskillstore/marketplace

Using the Wonda CLI to generate images, videos, music, and audio from the terminal — plus LinkedIn, Reddit, and X/Twitter research and automation

aiskillstore/marketplace

Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. When Claude needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks

aiskillstore/marketplace

Generates creative domain name ideas for your project and checks availability across multiple TLDs (.com, .io, .dev, .ai, etc.). Saves hours of brainstorming and manual checking.

aiskillstore/marketplace

Process video files with audio extraction, format conversion (mp4, webm), and Whisper transcription. Use when user mentions video conversion, audio extraction, transcription, mp4, webm, ffmpeg, or whisper transcription.

aiskillstore/marketplace

Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output should be a bitmap asset rather than repo-native code or vector. Do not use when the task is better handled by editing existing SVG/vector/code-native assets, extending an established icon or logo system, or building the visual directly in HTML/CSS/canvas.

aiskillstore/marketplace

A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).

aiskillstore/marketplace

Router skill for LLMQuant portfolio workflows. Use when the user needs company profiles, thesis tracking, theme research, watchlist monitoring, or alert management.

aiskillstore/marketplace

Account assets, equity and fund positions, P&L, cash flow records, account statements, margin ratios, buy-power estimates, order management, and DCA recurring investments via Longbridge (most require Trade permission). Frameworks: portfolio diagnosis, rebalancing, asset allocation, risk analysis (VaR/CVaR), performance attribution, and tax-loss harvesting. Triggers: "持仓", "账户", "盈亏", "资产", "对账单", "下单", "买入", "卖出", "撤单", "定投", "组合诊断", "再平衡", "资产配置", "风险分析", "绩效归因", "税损收割", "持倉", "賬戶", "盈虧", "對賬單", "下單", "買入", "賣出", "組合診斷", "再平衡", "稅損收割", "positions", "portfolio", "P&L", "order", "buy", "sell", "DCA", "statement", "risk analysis", "rebalancing", "tax harvesting", "我的风险", "持仓风险", "风险敞口", "資產", "資產配置", "風險分析", "績效歸因", "撤單

aiskillstore/marketplace

Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).

aiskillstore/marketplace

Use for Codex models/pricing, scheduled tasks, skills, settings, setup, troubleshooting, customization, automations, and self-knowledge—including 'you,' 'your,' 'this app,' or 'this coding agent' when they refer to Codex—and for OpenAI APIs/products and ChatGPT Work. Also use for model choice/migration, prompting, SDKs, Responses, Realtime, agents, evals, and Chat/Work/Codex comparisons. Do not use for generic app/software tasks that merely mention Codex.

aiskillstore/marketplace

Presentation creation, editing, and analysis. When Claude needs to work with presentations (.pptx files) for: (1) Creating new presentations, (2) Modifying or editing content, (3) Working with layouts, (4) Adding comments or speaker notes, or any other presentation tasks

aiskillstore/marketplace

Perform a read-only, defect-first review of a specified code change and return every actionable finding. Use when another agent delegates review of uncommitted changes, a base-branch diff, a commit, or custom review instructions.

aiskillstore/marketplace

Expert in building portfolios that actually land jobs and clients - not just showing work, but creating memorable experiences. Covers developer portfolios, designer portfolios, creative portfolios, and portfolios that convert visitors into opportunities.

Skills relacionados