اجعل LibreOffice يتعرف على بيئة تشغيل Java الخاصة بك
قم بتثبيت بيئة تشغيل Java متوافقة، وقم بتمكينها في LibreOffice، وقم باستكشاف أخطاء قائمة JRE الفارغة وإصلاحها دون تغيير الإعدادات غير ذات الصلة.
نعم. لتحويل المستندات لمرة واحدة، أنشئ صورة Docker صغيرة مثبت عليها LibreOffice، ثم شغّلها soffice --headless. --convert-toقم بتثبيت مجلد الإدخال للقراءة فقط، ومجلد إخراج منفصل للكتابة، بحيث يظهر ملف PDF على جهازك. يستخدم هذا المثال صورة مبنية على Debian، ويحوّل ملف DOCX واحدًا إلى PDF؛ ولا يعرض LibreOffice كخدمة شبكية.

يبدأ وضع التشغيل بدون واجهة رسومية برنامج LibreOffice دون تشغيل واجهته الرسومية. يوفر LibreOffice توثيقًا لهذا الوضع لاستخدامه عبر سطر الأوامر وواجهة برمجة التطبيقات (API)، وتدعم خيارات سطر الأوامر فيه تحويل الملفات مع تحديد مجلد الإخراج. يقوم Docker بتجميع التطبيق وتوابعه، مما يسمح بتشغيل نفس صورة الحاوية بواسطة برنامج نصي أو محطة عمل دون الحاجة إلى تثبيت حزمة سطح المكتب على الجهاز المضيف.
يُعدّ هذا النمط مناسبًا لمهام المعالجة الدفعية المحلية، ومهام التكامل المستمر، أو لخادم خلفي يستقبل ملفًا ويحفظ النتيجة بعد تحويلها. لا يُعتبر الحاوية البسيطة غير الرسومية، في حد ذاتها، واجهة برمجة تطبيقات لتحويل HTTP: فهي لا تستمع إلى أي منفذ ولا تقبل أي عمليات تحميل من الويب. إذا كنت بحاجة إلى خدمة مستمرة، فأضف واجهة برمجة تطبيقات وقائمة انتظار مهام حول عملية التحويل، مع إضافة التحقق من صحة الطلبات، ومهلات زمنية، وحدود لحجم الملفات، وعزلها.
على نظام تشغيل لينكس أو ماك أو إس باستخدام باش أو واجهة سطر أوامر مشابهة، أنشئ مجلد مشروع يحتوي على مجلدات فرعية. ضع ملف المصدر في المجلد الفرعي inputواتركه outputفارغًا في المرة الأولى.
mkdir -p lo-work/input lo-work/output
cp report.docx lo-work/input/
cd lo-work
تستخدم أوامر Docker الموضحة أدناه مسارات وبنية أوامر شبيهة بنظام Unix. في نظام Windows، عدّل بنية مسار المضيف لـ PowerShell أو موجه الأوامر، وتأكد من السماح لـ Docker Desktop بمشاركة القرص الذي يحتوي على هذه المجلدات.
أنشئ ملفًا باسم Dockerfile"inside" lo-workيحتوي على هذا المحتوى:
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y --no-install-recommends \
libreoffice-writer fonts-liberation \
&& rm -rf /var/lib/apt/lists/*
ENTRYPOINT ["soffice"]
libreoffice-writerيُوفر برنامج Writer وفلاتر التحويل اللازمة لتنسيقات معالجة النصوص الشائعة. أضف libreoffice-calcهذا الخيار libreoffice-impressإذا كان البرنامج بحاجة إلى تحويل جداول البيانات أو العروض التقديمية. تُعد حزمة الخطوط أساسية فقط؛ لذا ثبّت الخطوط التي تتطلبها مستنداتك والتي لديك حقوق استخدامها، لأن الخطوط المفقودة قد تُؤثر على التفاف الأسطر وفواصل الصفحات.
قم ببناء الصورة من الدليل الذي يحتوي على ملف Dockerfile:
docker build -t lo-headless .
يستخدم هذا المثال أسماء حزم Debian Bookworm. تتغير علامات الصورة الأساسية وحزم المستودع بمرور الوقت؛ لذا، بالنسبة لإصدار الإنتاج، اختر صورة أساسية مُحدَّثة، وأعد بنائها بانتظام لتحديثات الأمان، وثبِّت الصورة الأساسية باستخدام الملخص إذا كنت بحاجة إلى إصدارات قابلة للتكرار. تجنّب تثبيت الحزم من مستودع غير ذي صلة لمجرد مطابقة برنامج تعليمي.

أنشئ حاوية قابلة للاستخدام لمرة واحدة، ثم مرر خيارات التحويل بعد اسم الصورة. يكون مجلد الإدخال للقراءة فقط، بينما يكون مجلد الإخراج فقط قابلاً للكتابة. --userيُشغّل هذا الخيار العملية باستخدام مُعرّفات المستخدم والمجموعة الخاصة بك على نظام Linux، بينما HOME=/tmpيمنح LibreOffice مجلدًا قابلاً للكتابة. اضبط أذونات المجلد إذا لم يكن لدى المستخدم المُضيف صلاحية الكتابة إليه output.
docker run --rm \
--user "$(id -u):$(id -g)" \
--env HOME=/tmp \
-v "$PWD/input:/input:ro" \
-v "$PWD/output:/output" \
lo-headless \
--headless --nologo \
-env:UserInstallation=file:///tmp/lo-profile \
--convert-to pdf:writer_pdf_Export \
--outdir /output \
/input/report.docx
--headlessيُخفي واجهة المستخدم الرسومية، --convert-to pdf:writer_pdf_Exportويختار مُرشِّح تصدير ملفات PDF، --outdirويُوجِّه النتيجة إلى مجلد الإخراج المُثبَّت. يُتيح مسار ملف تعريف المستخدم الفريد لهذه العملية دليل تكوين LibreOffice قابلًا للكتابة؛ إذا كنت تُشغِّل عدة تحويلات في وقت واحد في حاوية واحدة طويلة الأمد، فاستخدم مسار ملف تعريف مختلفًا لكل عملية.
استخدم هذا الخيار --mountبدلاً من الخيار الآخر -vإذا كنت تفضل صيغة الربط الأكثر وضوحًا في Docker. ترتبط عمليات الربط بمسارات على مضيف Docker daemon، بينما تسمح عمليات الربط للقراءة والكتابة لعمليات الحاوية بتغيير ملفات المضيف. حافظ على نطاق عمليات الربط محدودًا، وتجنب ربط دليلك الرئيسي أو مقبس Docker، ولا تُشغّل عامل تحويل المستندات بصلاحيات غير ضرورية.

تحقق من دليل الإخراج الخاص بالجهاز المضيف بعد خروج Docker:
ls -l output/
file output/report.pdf
test -s output/report.pdf
يجب أن يكون ملف PDF موجودًا وغير فارغ. افتحه في قارئ PDF وتحقق من عدد الصفحات والجداول والصور وفواصل الصفحات والخطوط قبل الاعتماد عليه. لا يضمن انتهاء العملية بنجاح عرض جميع العناصر بالشكل المطلوب، خاصةً إذا كان المستند يستخدم خطوطًا أو ميزات غير متوفرة في الحاوية. استخدم مجلد إخراج نظيفًا أو اسم ملف إخراج جديدًا لكل عملية تشغيل حتى لا يتم الخلط بين ملف PDF قديم وأحدث عملية تحويل.

inputتم تركيبه في /input، وأن outputدليل المضيف قابل للكتابة بواسطة المستخدم المحدد.-env:UserInstallationإمكانية الكتابة في المسار. استخدم دليل تعريف منفصل لكل عملية LibreOffice متزامنة.-vأو --mount، وتحقق من أن البرنامج الخفي يمكنه الوصول إليهما.للاطلاع على سلوك الخيارات بالتفصيل، راجع مرجع معلمات سطر الأوامر في LibreOffice . يمكنك التحقق من أسماء الحزم في قائمة حزم Debian Bookworm الخاصة بـ LibreOffice Writer . تشرح وثائق Docker الرسمية عمليات الربط وتركيب الملفات (bind mounts) وتعليمات Dockerfile .
قم بتثبيت بيئة تشغيل Java متوافقة، وقم بتمكينها في LibreOffice، وقم باستكشاف أخطاء قائمة JRE الفارغة وإصلاحها دون تغيير الإعدادات غير ذات الصلة.
قم بإنشاء حاوية LibreOffice صغيرة، وقم بتحويل مستندات المكتب بدون واجهة مستخدم رسومية، وتحقق من مخرجات PDF مع تقييد الوصول إلى ملفات المضيف.
قلل من حجم ملفات عروض LibreOffice التقديمية الكبيرة عن طريق ضغط الصور المضمنة، واختيار إعدادات صور معقولة، والتحقق من جودة الشرائح قبل مشاركتها.
قم بمطابقة أبعاد صفحة LibreOffice مع طابعتك، وتحقق من الهوامش القابلة للطباعة، وقم بتصحيح التحجيم قبل طباعة مستند ذي حجم مخصص.
استبدل الوصول المتكرر إلى الخلايا بعمليات قراءة وكتابة النطاقات المجمعة، ثم قم بقياس النتائج وحماية الصيغ في مصنفات Calc الكبيرة.
قسّم المخطوطة الطويلة إلى فصول، وقم بتجميعها في برنامج Writer، وحافظ على اتساق الأنماط والمحتويات وعمليات التحقق من التصدير.
استخدم خيار PostgreSQL المباشر في Base لإدخال تفاصيل الخادم الخاص بك، وتسجيل الدخول، وحفظ ملف اتصال ODB، واستكشاف أخطاء الوصول الشائعة وإصلاحها.
قم بتثبيت خط في مجلد الخطوط الخاص بمستخدم Linux الخاص بك، وأعد تشغيل LibreOffice Flatpak، وتأكد من ظهوره في Writer دون إضعاف الحماية التي يوفرها التطبيق.
احمِ عملك واعزل أعطال حفظ محرك الأقراص الشبكي في LibreOffice على نظام macOS Sonoma باستخدام سير عمل محلي أولاً، وفحوصات الأذونات، والاختبارات المستهدفة.
حافظ على الأصفار البادئة في برنامج Calc عن طريق تعيين أعمدة المعرف إلى نص أثناء استيراد ملف CSV، والتحقق من المعاينة، والتحقق من البيانات المحفوظة.