\usepackage{php}
Compile LaTeX a PDF desde PHP con una sola solicitud HTTP. Use la extensión cURL integrada en PHP estándar o la facade Http::post en Laravel: no es necesario instalar ningún SDK.
\section{Inicio rápido}
El siguiente ejemplo usa curl_init, integrado en PHP, para compilar un documento LaTeX mínimo y escribir el PDF resultante en disco. No se necesitan paquetes de Composer.
<?php
$apiKey = getenv('FORMATEX_API_KEY');
$apiUrl = 'https://api.formatex.io/api/v1';
$latexSource = <<<'LATEX'
\documentclass{article}
\usepackage{amsmath}
\begin{document}
Hello from PHP! $E = mc^2$
\end{document}
LATEX;
$ch = curl_init($apiUrl . '/compile');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'X-API-Key: ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'latex' => $latexSource,
'engine' => 'pdflatex',
]),
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode !== 200) {
$error = json_decode($response, true);
throw new RuntimeException('Compilation failed: ' . $error['error']);
}
file_put_contents('output.pdf', $response);
echo "PDF saved to output.pdf\n";\section{Laravel}
Use la facade Http de Laravel para llamar a la API de FormaTeX desde un controlador. El siguiente ejemplo envía el PDF directamente al navegador como descarga.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Http;
class PdfController extends Controller
{
public function generate(Request $request): Response
{
$request->validate([
'source' => 'required|string',
'engine' => 'in:pdflatex,xelatex,lualatex,latexmk',
]);
$response = Http::withHeaders([
'X-API-Key' => config('services.formatex.key'),
])->post('https://api.formatex.io/api/v1/compile', [
'latex' => $request->input('source'),
'engine' => $request->input('engine', 'pdflatex'),
]);
if (!$response->successful()) {
return response()->json([
'error' => $response->json('error'),
], 500);
}
return response($response->body(), 200, [
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'attachment; filename=output.pdf',
]);
}
}\section{Authentication}
Guarde su clave de API en una variable de entorno y léala en tiempo de ejecución. Nunca escriba las claves directamente en los archivos de código.
PHP estándar
$apiKey = getenv( 'FORMATEX_API_KEY' );
Laravel (.env + config)
# .env FORMATEX_API_KEY =your-api-key # config/services.php 'formatex' => ['key' => env('FORMATEX_API_KEY')],\section{Engines}
Pase un campo engine en el cuerpo JSON. Omítalo para usar el valor predeterminado pdflatex.
pdflatexEl más rápido. Ideal para documentos estándar.xelatexCompatibilidad con Unicode y fuentes del sistema.lualatexScripting con Lua y tipografía avanzada.latexmkEjecuta automáticamente las pasadas necesarias para referencias e índice.Consulte la documentación de motores para ver una comparación completa.
\section{Reference}
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| latex | string | Sí | El código fuente LaTeX completo como cadena de texto |
| engine | string | No | Motor que se usará. Valor predeterminado: "pdflatex". Opciones: pdflatex, xelatex, lualatex, latexmk |
POST https://api.formatex.io/api/v1/compile — Devuelve los bytes del PDF sin procesar si tiene éxito ( 200), o un error JSON si falla ( 422/ 401).
\section{Otros SDK}
\end{php}
Obtenga su clave de API, ejecute el inicio rápido y consiga un PDF en minutos, sin paquetes de Composer.