\usepackage{curl}

FormaTeX REST API مع curl

جمّع LaTeX إلى PDF من الطرفية بأمر curl واحد. بلا SDK وبلا اعتماديات، فقط REST API ومفتاح API الخاص بك.

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

\section{التجميع الأساسي}

التجميع الأساسي

أرسل طلب POST إلى /api/v1/compile مع شيفرة LaTeX المصدرية. جسم الاستجابة هو ملف PDF الثنائي الخام، احفظه مباشرةً باستخدام --output.

terminal
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. راجع وثائق المحركات للاطلاع على المقارنة الكاملة.

terminal
# 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}

التجميع من ملف .tex

استخدم jq لتهريب محتويات الملف بأمان إلى سلسلة JSON قبل تمريرها إلى curl. يعالج ذلك أسطر الجديدة والأحرف الخاصة بشكل صحيح.

terminal
# 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 مع كل عملية تجميع ناجحة.

terminal
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}

نقاط نهاية API

الطريقةنقطة النهايةالوصف
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
  • ← أنشئ مفاتيح API من لوحة التحكم بعد التسجيل.
  • ← يظهر المفتاح مرة واحدة عند إنشائه، فاحفظه فورًا.
  • ← أضف سطر التصدير إلى ~/.bashrc أو ~/.zshrc ليبقى فعالًا بين الجلسات.

\end{curl}

ابدأ تجميع LaTeX باستخدام curl

احصل على مفتاح API، ونفّذ أمر البدء السريع، واحصل على ملف PDF في أقل من ثانية، مباشرةً من الطرفية.