Skip to content

Troubleshooting ar

Hammad Maqbool edited this page Oct 29, 2026 · 1 revision

English · 简体中文 · 繁體中文 · Español · العربية · Français · Português (Brasil) · Deutsch · हिन्दी · 日本語 · 한국어 · Русский · Bahasa Indonesia · Türkçe · Italiano · Tiếng Việt

استكشاف أخطاء docxi وإصلاحها: أخطاء التثبيت وأخطاء التشغيل والمخرجات التالفة

ابحث عن العَرَض الذي تواجهه أدناه. معظم مشكلات التطبيقات القديمة سببها docxi 0.0.x، والترقية إلى الإصدار 0.1.0 تحلها دون تغيير الشيفرة.

التثبيت

لا يجد Bundler إصدارات متوافقة من nokogiri في تطبيق Rails 6 أو أحدث. يقيّد docxi 0.0.6 الاعتمادية بـ nokogiri < 1.7، بينما تحتاج كل إصدارات Rails منذ 6.0 إلى nokogiri 1.8.5 أو أحدث. استخدم gem "docxi", "~> 0.1".

لا يجد Bundler إصدارات متوافقة من rubyzip. يقيّد docxi 0.0.6 الاعتمادية بـ rubyzip ~> 0.9.9، وهذا يتعارض مع أي حزمة تحتاج إلى إصدار أحدث من rubyzip. أما docxi 0.1.0 فتقبل rubyzip من 1.3 إلى 3.x.

يستمر Bundler في تثبيت الإصدار 0.0.6. السبب إمّا أن ملف Gemfile يثبّت docxi على إصدار 0.0.x، مثل "~> 0.0.6"، وإمّا أن إصدار Ruby أقدم من 2.5 الذي يتطلبه الإصدار 0.1.0. غيّر السطر في Gemfile إلى gem "docxi", "~> 0.1" وتحقق من ruby -v.

فشل تصريف nokogiri. لا توجد حزمة nokogiri مُصرَّفة مسبقًا تطابق منصتك، لذا تُبنى من الشيفرة المصدرية. ثبّت مصرّف C واتبع دليل تثبيت nokogiri.

أخطاء أثناء بناء المستند

ظهور NoMethodError: undefined method 'present?' خارج Rails. كان docxi 0.0.6 يفترض أن ActiveSupport محمّلة. أما 0.1.0 فلا تحتاج إليها.

ظهور NameError عند استدعاء tab أو frame أو page_numbers في رأس الصفحة. كانت هذه الدوال معطّلة في 0.0.6 وتعمل في 0.1.0، بما في ذلك document.frame("text").

ظهور Errno::ENOENT عند إضافة صورة. المسار غير موجود بالنسبة إلى المجلد الذي يعمل فيه برنامجك. على Ruby 3 مع docxi 0.0.6 تفشل عناوين URL للصور بالطريقة نفسها أيضًا، لأن 0.0.6 كان يستخدم Kernel#open. أما 0.1.0 فتنزّل عناوين URL باستخدام URI#open.

مستندات لا تظهر كما ينبغي

لا يفتح Google Docs أو LibreOffice الملف. يكتب docxi 0.0.6 مع rubyzip 3 سجلات Zip64 في كل مُدخل، وهذه البرامج ترفضها. أما 0.1.0 فتكتب الأرشيفات دونها.

لا يوجد رأس أو تذييل في الصفحة الأولى. تمنح docxi الصفحة الأولى رأسًا وتذييلًا خاصين بها. اضبطهما باستخدام add_first_header وadd_first_footer. راجع الإعدادات.

أحد الهوامش مفقود، أو يبدو تخطيط الصفحة خاطئًا. عند ضبط الهوامش، مرّر top وright وbottom وleft معًا. ما تتركه منها يُكتب فارغًا.

تختفي المسافات بين المقاطع النصية. يحذف Word المسافات في بداية المقطع أو نهايته. أضف space: true إلى استدعاء text ذاك.

الصور في رؤوس الصفحات أو في خلايا الجداول أو التي تستخدم pH/pV صغيرة جدًا أو مربعة. مشكلة معروفة في 0.1.0: يُحسب حجمها على أنه width * height * 14.92 EMU في البعدين كليهما. استخدم صورًا مضمّنة يُضبط حجمها عبر style:، أو راجع الحل البديل في أفضل الممارسات.

تختفي صورة عند توليد المستند نفسه للمرة الثانية. الصور المضافة من كائن File مفتوح أو من أي IO آخر تُقرأ أثناء render، والتوليد الثاني يقرأ دفقًا فارغًا. مرّر مسارًا بدلًا من ذلك، أو ولّد المستند مرة واحدة.

تظهر الحدود المضبوطة على table حول كل خلية. مشكلة معروفة: يُطبَّق الخيار borders: على مستوى الجدول على كل خلية بدلًا من الحواف الخارجية للجدول. ولرسم الإطار الخارجي فقط، اضبط borders: على الخلايا الواقعة على أطراف الجدول، لجوانبها الخارجية فقط.

تبدأ أرقام الصفحات في خلايا الجداول بالنص «GlobalOptions». مشكلة معروفة في TableCell#page_numbers. ضع أرقام الصفحات في تذييل أو رأس صفحة بدلًا من ذلك.

صورة JPEG أو GIF تظهر بشكل خاطئ أو لا تظهر. تُخزَّن كل صورة كجزء PNG بنوع محتوى PNG أيًا كانت صيغتها الحقيقية، لذا قد لا تعرض بعض البرامج الصيغ الأخرى. حوّل الصور إلى PNG قبل إضافتها.

فحص ملف مولَّد

ملف .docx أرشيف zip، لذا يمكنك النظر داخله:

unzip -l report.docx
unzip -p report.docx word/document.xml

إذا استمرت المشكلة، افتح بلاغًا (issue) يتضمن سكربتًا قصيرًا يعيد إنتاجها، وإصدارات Ruby وdocxi وnokogiri وrubyzip.

صفحات ذات صلة


→ الصفحة الرئيسية للويكي · README

Clone this wiki locally