الحروف العربية أو الفارسية تظهر منفصلة أو معكوسة في ملف PDF
الإجابة المختصرة
يتغيّر شكل الحرف العربي بحسب موقعه في الكلمة، والكتابة تسير من اليمين إلى اليسار. إذا رتّبت أداة PDF النص من اليسار إلى اليمين أو رسمت الحروف واحدًا واحدًا، تظهر حروف منفصلة بترتيب معكوس. في Pandoc أضف -V dir=rtl -V lang=ar (أو lang=fa للفارسية) مع خط يدعم العربية، وفي أدوات HTML اضبط dir="rtl" ولا تستخدم letter-spacing مع النص العربي.
المشكلة كما ظهرت في الاختبار

-V mainfont="Segoe UI" فقط: الكلمات بترتيب معكوس والسطر الفارسي مضطرب.
السبب
- اتجاه النص: من دون ضبط الاتجاه من اليمين إلى اليسار يُرتَّب السطر من اليسار إلى اليمين، فتنعكس الكلمات والحروف.
- تشكيل الحروف: لكل حرف عربي شكل منفصل وآخر في أول الكلمة ووسطها وآخرها. المحرّك الذي لا يشكّل النص يعرض الأشكال المنفصلة فقط.
- الخاصية letter-spacing مع html2canvas: يحافظ Chrome على وصل الحروف العربية حتى مع التباعد، لكن html2canvas (المستخدمة في كثير من أزرار تحويل HTML إلى PDF) ترسم الحروف واحدًا واحدًا فتتفكك (انظر الصورة).

letter-spacing: 0.05em يحافظ على الوصل في Chrome ويكسره في html2canvas 1.4.1.افتح مستندًا عربيًا تجريبيًا
افتح المثال العربيالحل في Pandoc (مجرَّب)
pandoc input.md -o output.pdf \
--pdf-engine=xelatex \
-V mainfont="Segoe UI" \
-V dir=rtl -V lang=ar
-V dir=rtl -V lang=ar: حروف متصلة واتجاه من اليمين إلى اليسار.استخدم lang=fa للفارسية وlang=ur للأردية. يصلح أي خط يحتوي على الحروف العربية، مثل Noto Sans Arabic أو Noto Naskh Arabic على لينكس.
الحل في أدوات HTML و Chromium

- اضبط الاتجاه: ضع الفقرات العربية داخل
<div dir="rtl">…</div>أو استخدم<p dir="auto">. - احذف
letter-spacingمن نص المتن في ملف CSS الخاص بك. - ثبّت خطًا عربيًا على الخادم أو في صورة Docker.
<div dir="rtl">
مرحبا بالعالم. هذا نص عربي.
</div>في MarkPDF
يتعرّف MarkPDF على العربية والفارسية والأردية تلقائيًا: يحمّل خط Noto المناسب، وتأخذ كل فقرة وقائمة واقتباس وجدول اتجاهها من نصها. المستندات التي تمزج العربية بالإنجليزية تعمل من دون أي ترميز إضافي.
الأسئلة الشائعة
لماذا يظهر النص صحيحًا في المحرر وليس في PDF؟
يتعامل المحرر والمتصفح مع تشكيل العربية واتجاهها تلقائيًا، بينما تحتاج كثير من أدوات PDF إلى ضبط الاتجاه واللغة صراحةً.
هل أحتاج إلى خط خاص؟
أي خط يحتوي على الحروف العربية وجداول التشكيل، مثل Noto Sans Arabic و Noto Naskh Arabic و Segoe UI و Tahoma.
ماذا عن الأرقام والكلمات الإنجليزية داخل النص العربي؟
عند ضبط الاتجاه من اليمين إلى اليسار تحافظ خوارزمية الاتجاه الثنائي على ترتيب الأرقام والكلمات اللاتينية داخل السطر.