\compare{vs-reportlab}
يبني ReportLab ملفات PDF بوضع العناصر عند إحداثيات دقيقة. أما FormaTeX فيترك لـ TeX التخطيط تلقائيًا، فتصف مستندك بدلًا من التحكم في كل تفصيلة فيه.
ReportLab مكتبة Python لإنشاء ملفات PDF برمجيًا. تبني المستندات بوضع إطارات النص والجداول والرسومات عند إحداثيات x/y صريحة على لوحة رسم، وهو نموذج مستعار من PostScript. وتضيف نسخته التجارية ReportLab PLUS مكونات platypus المرنة لتقليل التموضع اليدوي.
لا يوفّر ReportLab تنضيد الرياضيات، وبناء جدول بطباعة احترافية يتطلب عروض أعمدة وقيم تباعد وأنماط خطوط مضبوطة بعناية تُكتب في كود Python.
FormaTeX واجهة لتجميع LaTeX. تكتب ملف .tex يصف بنية مستندك، من أقسام ورياضيات وجداول، ويتولى TeX تخطيط الصفحات تلقائيًا. ترسل المصدر إلى API وتستلم ملف PDF بجودة النشر في ثوانٍ.
تغطي أكثر من 6,000 حزمة على CTAN كل شيء من الرسوم الكيميائية إلى الترميز الموسيقي. دون حسابات إحداثيات.
\section{مقارنة الميزات}
تفصيل شامل لجودة المخرجات ودعم الرياضيات والجداول وعمق المنظومة.
| الميزة | FormaTeX | ReportLab |
|---|---|---|
| جودة المخرجات | تنضيد TeX | تخطيط برمجي |
| دعم الرياضيات | نعم | لا |
| الجداول المعقدة | نعم | إحداثيات يدوية |
| إعادة استخدام القوالب | .tex template files | وراثة الأصناف في Python |
| REST API | نعم | لا |
| منظومة الحزم | CTAN (أكثر من 6,000 حزمة) | إضافات PyPI |
| جودة الطباعة | احترافية (تقنين TeX للحروف) | أساسية |
| منحنى التعلّم | صياغة LaTeX | Python API |
\section{مقارنة الكود}
تقرير ربع سنوي بعنوان وصيغة رياضية وجدول بيانات، مكتوب بـ ReportLab وFormaTeX جنبًا إلى جنب.
from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, Paragraph, Table
from reportlab.lib.styles import getSampleStyleSheet
doc = SimpleDocTemplate("report.pdf", pagesize=letter)
styles = getSampleStyleSheet()
# Manual coordinate-based table layout
data = [["Metric", "Q1", "Q2"], ["Revenue", "$1.2M", "$1.4M"]]
table = Table(data, colWidths=[200, 100, 100])
story = [
Paragraph("Quarterly Report", styles["Heading1"]),
Paragraph(
"Revenue grew 12% year-over-year.",
styles["BodyText"],
),
table,
]
doc.build(story)import requests
LATEX = r"""
\documentclass{article}
\usepackage{amsmath, booktabs}
\begin{document}
\section*{Quarterly Report}
Revenue grew by 12\% year-over-year:
\[
\text{Growth} = \frac{Q_2 - Q_1}{Q_1} \approx 12\%
\]
\begin{tabular}{lrr}
\toprule
Metric & Q1 & Q2 \\
\midrule
Revenue & \$1.2M & \$1.4M \\
\bottomrule
\end{tabular}
\end{document}
"""
response = requests.post(
"https://api.formatex.io/api/v1/compile",
headers={
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
json={"latex": LATEX, "engine": "pdflatex"},
)
with open("report.pdf", "wb") as f:
f.write(response.content)جرّب نسخة FormaTeX مباشرة
افتح الـ playground والمستند محمّل مسبقًا، وجمّعه بنقرة واحدة.
\section{مطورو Python}
دون إعداد لوحة ReportLab، ودون ربط flowables، ودون كود platypus النمطي. أرسل مصدر LaTeX عبر POST واكتب الاستجابة في ملف. وتتولى API الباقي.
لا يدعم ReportLab الرياضيات أصلًا. وعرض المعادلات يتطلب حلولًا بديلة قبيحة مثل صور PNG مُعدّة مسبقًا. أما FormaTeX فيستخدم محرك الرياضيات في TeX نفسه الذي تعتمد عليه Nature وarXiv.
قالب FormaTeX ملف .tex عادي تتحكم في إصداراته مع كود Python. استبدل ملف الصنف فيرث كل مستند منشأ التصميم الجديد، دون إعادة هيكلة أصناف Python.
\end{vs-reportlab}
سجّل مجانًا دون بطاقة ائتمان. جمّع أول PDF بـ LaTeX من Python في أقل من خمس دقائق.