Revisada el 2026-10-12
Skill de Claude Code que convierte fotos de páginas de un libro en un PDF con texto seleccionable por unidad. Usa hojas de contactos para localizar portadas, verifica el OCR y transcribe a mano lo que no se lee.
Solo es adecuada para libros que el usuario pueda copiar con este fin: propios, de dominio público, con licencia que lo permita o con autorización. Tener el libro no basta por sí solo para copiarlo ni subirlo a un servicio externo, y los PDF son copias de trabajo para estudio personal. Para el marco general, véase la ficha sobre material educativo en Gemini Notebook.
| Datos clave | |
|---|---|
| Formato | Skill de Claude Code (SKILL.md)1 |
| Idioma | Español |
| Instalación | Global: ~/.claude/skills/generar-pdf-para-notebook-desde-capturas/SKILL.md. Solo un proyecto: .claude/skills/generar-pdf-para-notebook-desde-capturas/SKILL.md1 |
Prompt
Copia el bloque completo en un archivo SKILL.md. La cabecera inicial (name y description) es la que usa Claude Code para decidir cuándo ofrecer la skill.1
---
name: generar-pdf-para-notebook-desde-capturas
description: Convierte las fotos de móvil de las páginas de un libro de texto en un PDF con OCR por unidad, listo para subir a una herramienta de estudio como NotebookLM. Localiza las portadas de unidad con hojas de contactos, genera los PDF, verifica el OCR, transcribe a mano lo que no se lee y deja registro. Úsala solo con material propio o con autorización. Actívala cuando el usuario diga "déjalo listo para NotebookLM", "genera los PDF de tema", "he dejado las capturas de X" o "/generar-pdf-para-notebook-desde-capturas".
---
Procedimiento para convertir fotos de páginas en un PDF con texto seleccionable por unidad didáctica. Trabaja sobre copias: las fotos originales no se tocan.
## Antes de empezar: derechos
- Usa solo libros que se puedan copiar para este fin: obras propias, de dominio público, con licencia que lo permita o con autorización suficiente.
- Poseer o haber comprado un libro no demuestra por sí solo que se pueda copiar, transformar o subir a un servicio externo. Si hay duda, revisa las condiciones del libro y del servicio y pregunta al usuario antes de seguir.
- Los PDF son copias de trabajo para estudio personal. No se distribuyen ni se publican.
- Subir un PDF a un servicio externo envía su contenido a un tercero. El usuario decide si lo hace.
- No elimines marcas, protecciones ni avisos de derechos.
## Entrada
- Asignatura, curso y carpeta donde están las capturas. Si no está claro, pregúntalo una vez.
- Un PDF = una unidad. El orden alfabético de los nombres de foto es el orden de las páginas.
## Requisitos
- `img2pdf`, `ocrmypdf` y los datos de idioma de Tesseract (en macOS: `brew install img2pdf ocrmypdf tesseract-lang`).
- poppler (`pdfinfo`, `pdftotext`, `pdftoppm`).
- Python 3 con OpenCV (`opencv-python`) para las hojas de contactos y, si se quiere, el recorte y la corrección de perspectiva.
- Si las fotos están en un disco de red, comprueba que está montado antes de empezar.
## Pasos
1. **Lee** las notas del proyecto (decisiones, convenciones de nombres) si existen.
2. **Deriva las rutas con Python, no con `find` recursivo.** En un disco de red, `find` puede tardar minutos o colgarse, y los nombres con tildes pueden venir normalizados de otra forma (NFD). Lista nivel a nivel con `os.listdir`, guarda la ruta de capturas en un fichero temporal y reúsala. Comprueba que la ruta es la correcta antes de lanzar nada.
3. **Cuenta las fotos** y haz **hojas de contactos** (20 miniaturas por hoja, 5×4, con el número de foto en rojo) con OpenCV. Léelas para localizar portadas de unidad, hojas en blanco, hojas de separación y contraportada. Es mucho más barato que abrir foto a foto. Las miniaturas deben respetar el EXIF.
4. **Decide los rangos.** Criterios que han funcionado:
- Cada unidad empieza en su portada («N Título»). El nombre usa el título de la portada, no una suposición; si dudas, pregunta.
- Antes de la primera unidad: `U00-Inicio-...` (portada, índice, presentación). La evaluación inicial y el repaso trimestral llevan su propio nombre, no son unidades.
- Descarta las hojas de separación decorativas y la contraportada.
- La página de cálculo o repaso que cierra una unidad va con esa unidad, no con la siguiente.
- Si hay duda, presenta la tabla de rangos al usuario antes de generar. Si es evidente por las portadas, genera y pide confirmación después.
5. **Genera cada PDF.**
- Opcional: recorte y corrección de perspectiva con OpenCV, a unos 3200 px de ancho. Sin él, el OCR rinde peor con fotos torcidas o con sombras.
- Une las fotos del rango: `img2pdf foto-001.jpg ... foto-020.jpg -o unidad-sin-ocr.pdf`. img2pdf respeta el EXIF; no gires las imágenes con otras herramientas.
- Aplica el OCR: `ocrmypdf -l spa --rotate-pages --deskew unidad-sin-ocr.pdf unidad.pdf`. `--rotate-pages` endereza las páginas fotografiadas de lado y `--deskew` corrige la inclinación. Cambia `spa` por el idioma del libro.
- Cada unidad puede tardar un par de minutos. Si son muchas, ejecútalo en segundo plano y espera a que terminen.
6. **Verifica.** Cuenta palabras por página con `pdftotext -raw -f i -l i` y comprueba con `pdfinfo` que el nº de páginas coincide con las fotos del rango. Las páginas que bajen de unas 60 palabras se miran: portadas, hojas en blanco y esquemas son normales. Renderiza con `pdftoppm -r 40` una página apaisada y una portada con foto y confirma orientación y nitidez. Si el texto sale borroso, mira la foto original antes de culpar al recorte o al OCR.
7. **Transcribe a mano** lo que el OCR no lee (texto sobre foto o sobre fondo de color, recuadros, cómics) en un `.md` junto al PDF, con fecha y una línea que diga que está transcrito a mano. No repitas la foto en el documento.
8. **Registra.** Anota en el registro del proyecto la fecha, los rangos, los descartes y las incidencias, y deja una tabla PDF/fotos/páginas con los pendientes.
9. **Resume al usuario:** tabla de PDF, qué se descartó, qué se transcribió, qué no se ha verificado (el OCR no se revisa página a página; los dígitos en páginas curvadas por el lomo pueden fallar, sobre todo en matemáticas) y qué archivos se crearon.
## Nombres
- `<curso>-<ASIG>-U<NN>-<Titulo>.pdf`, sin tildes ni signos, con guiones. Mejor corto: la herramienta de estudio suele mostrar el nombre del fichero como nombre de la fuente.
- Usa los códigos de asignatura que ya tenga el proyecto. Para una asignatura nueva, mira los PDF existentes o pregunta.
- No sobrescribas una versión anterior: la nueva lleva sufijo (`-recorte`) y la otra se borra solo cuando el usuario da la nueva por buena.
## Después (lo hace el usuario)
Subir los PDF y los `.md` como fuentes, una por unidad. Si falla la subida directa, a través del almacenamiento en la nube. Con el mapa mental de la herramienta se puede usar la skill `generar-pdf-desde-mapa-mental`.Cómo adaptarla
- La skill usa herramientas estándar (
img2pdf,ocrmypdf, Tesseract y poppler). El recorte y la corrección de perspectiva con OpenCV son opcionales y requieren un script propio, que no se incluye. - Cambia el idioma del OCR (
-l spa) y los códigos de asignatura por los tuyos. - Las reglas de rangos (portada, hojas de separación, repaso) vienen de libros de texto de primaria; revísalas para otro tipo de libro.
- Comprueba las condiciones del servicio al que vayas a subir los PDF.
Véase también
- Material educativo en Gemini Notebook
- Gemini Notebook
- Skill de hoja de estudio A4 desde un mapa mental
- Qué hacen los asistentes con tus datos
Referencias
Footnotes
-
Extend Claude with skills. Anthropic, documentación de Claude Code. Consultado el 2026-10-10. ↩ ↩2 ↩3