\usepackage{php}

API PHP pour convertir LaTeX en PDF

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.

Also available in:Python·Node.js·Go·PHP·Ruby·Rust·cURL|Full API reference

\section{Démarrage rapide}

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.

compile.php
<?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}

Intégration 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.

app/Http/Controllers/PdfController.php
<?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}

Configuration de la variable d'environnement

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')],
  • → Générez des clés API depuis votre tableau de bord après votre inscription.
  • → Les clés ne sont affichées qu'une seule fois à la création et sont stockées sous forme de hachages : enregistrez la vôtre immédiatement.

\section{Engines}

Choix du moteur

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}

Référence de l'API

ChampTypeRequisDescription
latexstringOuiCode source LaTeX complet sous forme de chaîne
enginestringNonMoteur à 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).

\end{php}

Commencez à compiler du LaTeX depuis PHP

Obtenez votre clé API, lancez le démarrage rapide et obtenez des PDF en quelques minutes, sans paquet Composer.