\usepackage{php}
جمّع LaTeX إلى PDF من PHP بطلب HTTP واحد. استخدم امتداد cURL المدمج في PHP العادية أو واجهة Http::post في Laravel، دون الحاجة إلى تثبيت أي SDK.
\section{بداية سريعة}
يستخدم المثال أدناه الدالة المدمجة curl_init في PHP لتجميع مستند LaTeX بسيط وكتابة ملف PDF الناتج على القرص. لا حاجة إلى أي حزم 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}
استخدم واجهة Http في Laravel لاستدعاء FormaTeX API من متحكم (controller). يبثّ المثال أدناه ملف PDF مباشرة إلى المتصفح كتنزيل.
<?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}
احتفظ بمفتاح API في متغير بيئة واقرأه أثناء التشغيل. لا تكتب المفاتيح أبدًا داخل ملفات المصدر.
PHP العادية
$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}
مرّر الحقل engine في جسم JSON. احذفه لاستخدام المحرك الافتراضي pdflatex.
pdflatexالأسرع. الأنسب للمستندات القياسية.xelatexدعم Unicode وخطوط النظام.lualatexبرمجة Lua وطباعة متقدمة.latexmkيشغّل التمريرات تلقائيًا للمراجع وفهرس المحتويات.راجع توثيق المحركات لمقارنة كاملة.
\section{Reference}
| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
| latex | string | نعم | كود LaTeX المصدري الكامل كسلسلة نصية |
| engine | string | لا | المحرك المراد استخدامه. الافتراضي: "pdflatex". الخيارات: pdflatex وxelatex وlualatex وlatexmk |
POST https://api.formatex.io/api/v1/compile — يعيد بايتات PDF الخام عند النجاح ( 200)، أو خطأ بصيغة JSON عند الفشل ( 422/ 401).
\section{حزم SDK أخرى}
\end{php}
احصل على مفتاح API، وشغّل البداية السريعة، واحصل على ملف PDF خلال دقائق، دون الحاجة إلى حزم Composer.