> ## Documentation Index
> Fetch the complete documentation index at: https://docs.doconda.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ¿Cómo resumir un PDF en un documento Word por API?

> Sube el PDF y pásalo en sources con un prompt como «Resume esto en 2 páginas» y format docx: recibes el resumen en Word y su PDF.

Para resumir un PDF en un Word, sube el PDF y pásalo en `sources` con `format: "docx"` y lo que quieres en `prompt`
(«Resume las medidas principales para un cliente»). Doconda lee tus ficheros antes de escribir y te avisa de las
cifras o citas que no salen de ellos.

## Pasos

1. Guarda tu API key en `DOCONDA_API_KEY` e instala el SDK (`pip install doconda` o `npm install @doconda/sdk`).
2. Sube el PDF (y las imágenes que quieras dentro) con `files.upload`.
3. Crea el documento con `sources` y descarga el Word.

<CodeGroup>
  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
  from pathlib import Path
  from doconda import Doconda

  doconda = Doconda()  # lee la key de DOCONDA_API_KEY
  law = doconda.files.upload("ley-vivienda.pdf")
  photo = doconda.files.upload("fachada.jpg")
  doc = doconda.documents.create(
      format="docx",
      prompt="Resume las medidas principales para un cliente",
      sources=[law["id"], photo["id"]],
  )
  Path("resumen.docx").write_bytes(doconda.documents.download(doc["id"], "docx"))
  ```

  ```ts TypeScript theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
  import { readFile, writeFile } from "node:fs/promises"
  import { Doconda } from "@doconda/sdk"

  const doconda = new Doconda()
  const law = await doconda.files.upload(await readFile("ley-vivienda.pdf"), "ley-vivienda.pdf")
  const photo = await doconda.files.upload(await readFile("fachada.jpg"), "fachada.jpg")
  const doc = await doconda.documents.create({
    format: "docx",
    prompt: "Resume las medidas principales para un cliente",
    sources: [law.id, photo.id],
  })
  await writeFile("resumen.docx", await doconda.documents.download(doc.id, "docx"))
  ```
</CodeGroup>

## Qué devuelve

* Un Word editable con el resumen, y su PDF. Las imágenes van dentro, donde encajan.
* Avisos en el informe (`documents.report(id)`):
  * `content.unsupported_fact`: una cifra, fecha o dato que no está en tu petición ni en tus fuentes.
  * `content.unsupported_citation` · `content.citation_to_review`: una cita legal que no viene de tus fuentes.
  * `source.selected`: tus fuentes eran muy largas y se usó la parte que trata de lo que pides.
  * `source.instructions`: una fuente intentaba dar órdenes; se ha ignorado.
* `status`: `ready`, `ready_with_warnings`, `needs_review` o `failed` (no se cobra).

## Límites

* En `sources`: hasta 5 documentos (Word, PowerPoint, Excel, PDF, también `.doc`, `.ppt` y `.xls`, TXT o Markdown) y
  hasta 10 imágenes, juntos.
* Cada fichero, hasta 20 MB.
* Para solo el PDF del resumen, usa `format: "pdf"`; para una presentación, `format: "pptx"`.

## Preguntas frecuentes

<AccordionGroup>
  <Accordion title="¿Puedo pasar el PDF por URL sin subirlo?">
    Sí. En `sources` también vale `{ "url": "https://…" }` o sus bytes en base64 (`{ "data", "filename" }`). Ver
    [formas de pasar un fichero](/guides/extract#cuatro-formas-de-pasar-un-fichero).
  </Accordion>

  <Accordion title="¿Y si solo quiero el texto para mi propio modelo?">
    Usa [`extract`](/guides/extract): devuelve el PDF en Markdown.
  </Accordion>

  <Accordion title="¿Puedo usar un documento que ya hizo Doconda como fuente?">
    Sí, por su id (`doc_…`).
  </Accordion>
</AccordionGroup>

## Sigue leyendo

* [Crear: con tus ficheros](/guides/create) y [SDK: con fuentes](/sdk/create).
* [Quickstart](/quickstart).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.