\usepackage{curl}
جمّع LaTeX إلى PDF من الطرفية بأمر curl واحد. بلا SDK وبلا اعتماديات، فقط REST API ومفتاح API الخاص بك.
\section{التجميع الأساسي}
أرسل طلب POST إلى /api/v1/compile مع شيفرة LaTeX المصدرية. جسم الاستجابة هو ملف PDF الثنائي الخام، احفظه مباشرةً باستخدام --output.
curl -X POST https://api.formatex.io/api/v1/compile \
-H "X-API-Key: $FORMATEX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"latex": "\\documentclass{article}\\begin{document}Hello World\\end{document}",
"engine": "pdflatex"
}' \
--output output.pdf\section{اختيار المحرك}
اضبط الحقل engine للتبديل بين المُجمِّعات. استخدم xelatex لترميز Unicode وخطوط النظام، أو lualatex للبرمجة النصية بـ Lua. راجع وثائق المحركات للاطلاع على المقارنة الكاملة.
# pdfLaTeX (fastest)
curl -X POST https://api.formatex.io/api/v1/compile \
-H "X-API-Key: $FORMATEX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"latex": "...", "engine": "pdflatex"}' \
--output pdflatex.pdf
# XeLaTeX (Unicode + system fonts)
curl -X POST https://api.formatex.io/api/v1/compile \
-H "X-API-Key: $FORMATEX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"latex": "...", "engine": "xelatex"}' \
--output xelatex.pdf\section{من ملف .tex}
استخدم jq لتهريب محتويات الملف بأمان إلى سلسلة JSON قبل تمريرها إلى curl. يعالج ذلك أسطر الجديدة والأحرف الخاصة بشكل صحيح.
# Read from file using shell substitution
curl -X POST https://api.formatex.io/api/v1/compile \
-H "X-API-Key: $FORMATEX_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"latex\": $(cat main.tex | jq -Rs .), \"engine\": \"pdflatex\"}" \
--output output.pdf
# Or use jq to build the JSON properly
jq -n --rawfile src main.tex '{"latex": $src, "engine": "pdflatex"}' | \
curl -X POST https://api.formatex.io/api/v1/compile \
-H "X-API-Key: $FORMATEX_API_KEY" \
-H "Content-Type: application/json" \
-d @- \
--output output.pdf\section{ترويسات الاستجابة}
استخدم --dump-header لالتقاط ترويسات الاستجابة. تعيد الواجهة X-Compile-Duration-Ms وX-Engine مع كل عملية تجميع ناجحة.
curl -X POST https://api.formatex.io/api/v1/compile \
-H "X-API-Key: $FORMATEX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"latex": "...", "engine": "pdflatex"}' \
--output output.pdf \
--dump-header headers.txt
# X-Compile-Duration-Ms: 94
# X-Engine: pdflatex
# Content-Type: application/pdf
cat headers.txt\section{Endpoints}
| الطريقة | نقطة النهاية | الوصف |
|---|---|---|
| POST | /api/v1/compile | جمّع LaTeX بشكل متزامن. تعيد بايتات PDF الخام. |
| POST | /api/v1/compile/async | أرسل مهمة تجميع. تعيد معرّف مهمة لاستطلاع حالتها. |
رموز الاستجابة: 200 — ملف PDF ثنائي، 401 — مفتاح API غير صالح أو مفقود، 422 — خطأ في تجميع LaTeX (جسم JSON يحتوي على الحقل error).
\section{Authentication}
تتطلب جميع الطلبات ترويسة X-API-Key. صدّر مفتاحك كمتغير بيئة لتتمكن من الإشارة إليه في كل أمر.
export FORMATEX_API_KEY =your-api-key~/.bashrc أو ~/.zshrc ليبقى فعالًا بين الجلسات.\section{حزم SDK أخرى}
\end{curl}
احصل على مفتاح API، ونفّذ أمر البدء السريع، واحصل على ملف PDF في أقل من ثانية، مباشرةً من الطرفية.