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

# Inicio rápido

> Tu primera conversión con el paquete Flutter/Dart en menos de 15 líneas.

# Inicio rápido

## Convertir un `File` (móvil/escritorio)

`convertFile` usa `dart:io` `File` y sube el documento por varias partes a `POST /convert`. Solo disponible en plataformas con acceso al sistema de archivos (no en Flutter Web).

```dart theme={null}
import 'dart:io';
import 'package:markpdf/markpdf.dart';

final client = MarkpdfClient(apiKey: 'YOUR_API_KEY');

final file = File('/ruta/report.pdf');
final result = await client.convertFile(file, options: ConvertOptions(mode: ConversionMode.fast));

if (result is MarkdownResult) {
  print(result.markdown);
}
```

## Convertir bytes (recomendado para Flutter Web)

`convertBytes` recibe un `Uint8Array` (por ejemplo, de `image_picker` o `file_picker`) y funciona en todas las plataformas, incluida la Web:

```dart theme={null}
import 'package:markpdf/markpdf.dart';

final client = MarkpdfClient(apiKey: 'YOUR_API_KEY');

final Uint8List bytes = await pickedFile.readAsBytes();
final result = await client.convertBytes(bytes, pickedFile.name);

if (result is MarkdownResult) {
  print(result.markdown);
}
```

<Tip>
  En Flutter Web no existe `dart:io.File`, por lo que `convertBytes` es la ruta recomendada allí. En dispositivos móviles/escritorio puedes usar cualquiera de los dos dependiendo de dónde proviene el archivo.
</Tip>

## Convertir de URL

```dart theme={null}
final result = await client.convertFromUrl(
  'https://bucket.example.com/report.pdf?sig=...',
  filename: 'report.pdf',
  options: ConvertOptions(mode: ConversionMode.fast),
);
```

## Solicitar metadatos además de Markdown

```dart theme={null}
final result = await client.convertFile(
  file,
  options: ConvertOptions(responseFormat: ResponseFormat.json),
);

if (result is JsonConvertResult) {
  print(result.result.markdown);
  print(result.result.engine);
  print(result.result.timings.totalRequestMs);
}
```

`ConvertResult` es una clase sellada: use `if (result is MarkdownResult)` o un `switch` exhaustivo para descomprimirlo. Consulte [Referencia](/docs/public/es/sdks/flutter/reference).

## Siguiente paso

* [Referencia completa del cliente](/docs/public/es/sdks/flutter/reference)
* [Trabajos asíncronos (202)](/docs/public/es/sdks/flutter/streaming-and-async)
* [Manejo de errores](/docs/public/es/sdks/flutter/error-handling)
