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
FormatoSkill de Claude Code (SKILL.md)1
IdiomaEspañol
InstalaciónGlobal: ~/.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

Referencias

Footnotes

  1. Extend Claude with skills. Anthropic, documentación de Claude Code. Consultado el 2026-10-10. ↩ ↩2 ↩3