# Extraer de PDF

Usa este extractor para archivos `.pdf`. Puede extraer imágenes, páginas renderizadas, texto, Markdown, archivos incrustados, metadatos del PDF, enlaces, anotaciones, campos de formulario y fuentes en un resultado ZIP.

## Referencia rápida

| Campo | Valor |
| --- | --- |
| Tipo de archivo origen | `.pdf` |
| Grupo origen | documentos |
| Endpoint de envío | `POST https://api.tools.fast/extract` |
| Endpoint de estimación | `POST https://api.tools.fast/extract/estimate/pdf` |
| Resultado | Descarga ZIP |
| Capacidades predeterminadas | `pdf.images`, `pdf.pages`, `pdf.text`, `pdf.markdown`, `pdf.embeddedFiles`, `pdf.metadata`, `pdf.links`, `pdf.annotations`, `pdf.forms`, `pdf.fonts` |
| Tamaño máximo de archivo | free: 50 MB; pro: 2048 MB |
| Límites de documento | free: 2000 unidades de documento; pro: 2000 unidades de documento |
| Límites de duración | No aplica |

## Capacidades

| Capacidad | Predeterminada | Opciones | Precio | Descripción |
| --- | --- | --- | --- | --- |
| `pdf.images` | Sí | Ninguna | Incluido | Imágenes incrustadas en el PDF guardadas por separado. |
| `pdf.pages` | Sí | Ninguna | Incluido | Páginas completas del PDF renderizadas como imágenes. |
| `pdf.text` | Sí | Ninguna | Incluido | Texto seleccionable del PDF guardado por página. |
| `pdf.markdown` | Sí | Ninguna | Incluido | Markdown generado desde texto de PDF. |
| `pdf.embeddedFiles` | Sí | Ninguna | Incluido | Archivos incrustados en el PDF guardados por separado. |
| `pdf.metadata` | Sí | Ninguna | Incluido | Metadatos del documento PDF para auditoría. |
| `pdf.links` | Sí | Ninguna | Incluido | Anotaciones de enlaces del PDF para revisión. |
| `pdf.annotations` | Sí | Ninguna | Incluido | Comentarios y marcas del PDF cuando estén presentes. |
| `pdf.forms` | Sí | Ninguna | Incluido | Datos de campos de formulario del PDF cuando estén disponibles. |
| `pdf.fonts` | Sí | Ninguna | Incluido | Fuentes incrustadas del PDF cuando estén presentes. |

## Salida de metadatos

La capacidad `pdf.metadata` escribe `metadata/pdf.json` y `metadata/pdf.csv`. Los campos de información del documento, como título, autor, creador, productor y palabras clave, se mantienen como cadenas. Los campos de fecha del PDF, como `CreationDate` y `ModDate`, se emiten como objetos legibles con `display`, `raw`, `local`, `offset`, `timezoneKnown`, `precision` y `parseStatus`; los valores con hora completa y zona horaria conocida también incluyen `isoUtc`.

## JSON de opciones con todas las capacidades

Usa esta estructura cuando quieras configurar explícitamente todas las salidas compatibles con este tipo de archivo.

```json
{
  "extraction": {
    "selectedCapabilities": [
      "pdf.images",
      "pdf.pages",
      "pdf.text",
      "pdf.markdown",
      "pdf.embeddedFiles",
      "pdf.metadata",
      "pdf.links",
      "pdf.annotations",
      "pdf.forms",
      "pdf.fonts"
    ],
    "includeManifest": true
  }
}
```

## Ejemplo de estimate

```bash
curl -sS -X POST "https://api.tools.fast/extract/estimate/pdf" \
  -H "X-Fast-Api-Key: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "fileSizeMb": 10,
  "pageCount": 12,
  "options": {
    "extraction": {
      "selectedCapabilities": [
        "pdf.images",
        "pdf.pages",
        "pdf.text",
        "pdf.markdown",
        "pdf.embeddedFiles",
        "pdf.metadata",
        "pdf.links",
        "pdf.annotations",
        "pdf.forms",
        "pdf.fonts"
      ],
      "includeManifest": true
    }
  }
}'
```

## Ejemplo de extract con todas las opciones configuradas

```bash
curl -sS -X POST "https://api.tools.fast/extract" \
  -H "X-Fast-Api-Key: $API_KEY" \
  -F "file=@input.pdf" \
  -F 'options={
  "extraction": {
    "selectedCapabilities": [
      "pdf.images",
      "pdf.pages",
      "pdf.text",
      "pdf.markdown",
      "pdf.embeddedFiles",
      "pdf.metadata",
      "pdf.links",
      "pdf.annotations",
      "pdf.forms",
      "pdf.fonts"
    ],
    "includeManifest": true
  }
}'
```

## Descubrimiento legible por máquina

```http
GET /options/pdf
GET /extractors/pdf
```
