> ## 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 Java SDK en menos de 15 líneas.

# Inicio rápido

## Convertir un archivo local

```java theme={null}
import tech.markpdf.MarkpdfClient;
import tech.markpdf.ConvertOptions;
import tech.markpdf.ConvertResult;
import java.nio.file.Path;

MarkpdfClient client = new MarkpdfClient("YOUR_API_KEY");

ConvertOptions options = ConvertOptions.builder()
    .mode(ConvertOptions.Mode.FAST)
    .build();

ConvertResult result = client.convertFile(Path.of("report.pdf"), options);

if (result instanceof ConvertResult.Markdown md) {
    System.out.println(md.markdown());
}
```

## Convertir bytes a memoria

```java theme={null}
byte[] data = java.nio.file.Files.readAllBytes(Path.of("report.pdf"));
ConvertResult result = client.convertBytes(data, "report.pdf", ConvertOptions.defaults());
```

## Convertir de URL

```java theme={null}
ConvertResult result = client.convertFromUrl(
    "https://bucket.example.com/report.pdf?sig=...",
    "report.pdf",
    ConvertOptions.builder().mode(ConvertOptions.Mode.FAST).build()
);
```

## Solicitar metadatos además de Markdown

```java theme={null}
ConvertOptions options = ConvertOptions.builder()
    .responseFormat(ConvertOptions.ResponseFormat.JSON)
    .build();

ConvertResult result = client.convertBytes(data, "report.pdf", options);

if (result instanceof ConvertResult.Json json) {
    System.out.println(json.result().markdown());
    System.out.println(json.result().engine());
    System.out.println(json.result().timings().totalRequestMs());
}
```

`ConvertResult` es una interfaz sellada con registros; use la coincidencia de patrones (`instanceof` con enlace o `switch`) para descomprimirla. Consulte [Referencia](/docs/public/es/sdks/java/reference).

## Conversión asincrónica con `CompletableFuture`

```java theme={null}
client.convertBytesAsync(data, "report.pdf", ConvertOptions.defaults())
    .thenAccept(result -> {
        if (result instanceof ConvertResult.Markdown md) {
            System.out.println(md.markdown());
        }
    })
    .exceptionally(err -> {
        err.printStackTrace();
        return null;
    });
```

Consulte [Transmisión y asíncrono](/docs/public/es/sdks/java/streaming-and-async) para obtener más detalles sobre `CompletableFuture` y los trabajos `202`.

## Siguiente paso

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