\usepackage{php}
Compilez du LaTeX en PDF depuis PHP en une seule requête HTTP. Utilisez l'extension cURL intégrée pour du PHP natif ou la façade Http::post dans Laravel : aucune installation de SDK requise.
\section{Démarrage rapide}
L'exemple ci-dessous utilise la fonction curl_init intégrée à PHP pour compiler un document LaTeX minimal et écrire le PDF obtenu sur le disque. Aucun paquet Composer nécessaire.
<?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}
Utilisez la façade Http de Laravel pour appeler l'API FormaTeX depuis un contrôleur. L'exemple ci-dessous renvoie le PDF directement au navigateur sous forme de téléchargement.
<?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}
Stockez votre clé API dans une variable d'environnement et lisez-la à l'exécution. N'écrivez jamais de clés en dur dans les fichiers source.
PHP natif
$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}
Passez un champ engine dans votre corps JSON. Omettez-le pour utiliser pdflatex par défaut.
pdflatexLe plus rapide. Idéal pour les documents standards.xelatexPrise en charge d'Unicode et des polices système.lualatexScripts Lua, typographie avancée.latexmkExécute automatiquement les passes pour les références et la table des matières.Consultez la documentation des moteurs pour une comparaison complète.
\section{Reference}
| Champ | Type | Requis | Description |
|---|---|---|---|
| latex | string | Oui | Code source LaTeX complet sous forme de chaîne |
| engine | string | Non | Moteur à utiliser. Par défaut : "pdflatex". Options : pdflatex, xelatex, lualatex, latexmk |
POST https://api.formatex.io/api/v1/compile : renvoie les octets bruts du PDF en cas de succès ( 200), ou une erreur JSON en cas d'échec ( 422/ 401).
\section{Autres SDK}
\end{php}
Obtenez votre clé API, lancez le démarrage rapide et obtenez des PDF en quelques minutes, sans paquet Composer.