كيفية إنشاء دمج بريد تلقائي مع الصور في برنامج LibreOffice Writer

يمكنك إنشاء دمج مراسلات مثالي في LibreOffice Writer للأسماء والعناوين والتواريخ وغيرها من حقول النصوص، ثم تكتشف أنه بمجرد أن يحتاج كل مستلم إلى صورة أو توقيع أو صورة منتج أو رمز QR أو شارة مختلفة، يصبح سير العمل البسيط غير عملي. والسبب مهم: حقول دمج المراسلات الموثقة في Writer هي حقول قاعدة بيانات تُستخدم كعناصر نائبة للنصوص. يدعم LibreOffice أيضًا الرسومات المضمنة والمرتبطة، لكن دليل المساعدة الحالي لا يوثق "حقل صورة دمج المراسلات" الأصلي الذي يستبدل تلقائيًا صورة من عمود مسار الملف لكل سجل.

هذا يترك خيارين عمليين. إذا كانت جميع المستندات المدمجة تستخدم نفس الشعار أو صورة الخلفية، فاستخدم دمج المراسلات العادي في برنامج Writer وثبّت تلك الصورة في القالب. أما إذا كان لا بد من تغيير الصورة لكل صف، فالطريقة الأكثر تحكمًا هي الاحتفاظ ببيانات النص والصورة في برنامج Calc، وحجز كائن رسومي مُسمى في قالب Writer، وأتمتة عملية الدمج باستخدام ماكرو LibreOffice Basic. يستخدم هذا الدليل الطريقة الثانية.

تتوافق هذه التعليمات مع وثائق LibreOffice 26.2 المتوفرة في عام 2026. قد تختلف القوائم قليلاً في الإصدارات الأخرى أو على نظام macOS. يشير دليل LibreOffice Writer الحالي إلى إمكانية تضمين الصور أو ربطها، بينما تتيح واجهة برمجة تطبيقات UNO الوصول إلى كائنات رسومية في Writer، XTextGraphicObjectsSupplierكما تسمح بأتمتة تعيين صورة من عنوان URL خارجي. تُمكّن هذه الميزات من إنشاء سير عمل للصور لكل سجل على حدة، على الرغم من أن معالج دمج البريد القياسي لا يوفرها كحقل صورة مخصص.

اختر سير العمل المناسب قبل البدء

متطلباتأفضل نهجالمقايضة الرئيسية
نفس الشعار أو الصورة على كل حرفدمج البريد في برنامج Standard Writerبسيط، لكن الصورة لا تتغير أبدًا بالتسجيل
صورة مختلفة لكل مستلمقالب Writer + Calc + أتمتة Basic/UNOيتطلب الأمر مزيدًا من الإعداد، لكن التحكم في الصورة يمكن التنبؤ به
تخزن قاعدة البيانات الصورة نفسها بدلاً من مسارهاسير عمل قاعدة البيانات/النموذج أو رمز UNO مخصصأفضل لقواعد البيانات المُدارة، لكنها أثقل من عملية الدمج القائمة على جداول البيانات.
مئات أو آلاف الوثائق في مجموعات غير مراقبةماكرو أو نص برمجي خارجي للعبة أونويتطلب ذلك الاختبار والتسجيل والالتزام بمسارات الملفات

إذا كانت حالة استخدامك تقتصر على شعار شركة ثابت، فتوقف هنا واستخدم سير عمل نموذج الرسالة المعتاد في LibreOffice . أما بقية هذه المقالة فهي مخصصة للصور المتغيرة.

الخطوة 1: تجهيز مصدر بيانات Calc نظيف

أنشئ ورقة عمل حسابية تحتوي على صف عناوين واحد وسجل واحد في كل صف. احتفظ بمراجع الصور في عمود منفصل. يُعدّ التنسيق التالي عمليًا CustomerID: FirstName، ، LastName، Email، ImagePath، و OutputName.

ورقة عمل LibreOffice Calc تحتوي على حقول العميل ومسارات الصور وأسماء الإخراج لعملية دمج تلقائية في برنامج Writer.
احتفظ بمسار صورة واحد واسم ملف إخراج واحد لكل صف حتى تتمكن الأتمتة من حل كل سجل دون تخمين.

استخدم المسارات المطلقة أثناء بناء واختبار عملية الدمج. صحيح أنها أقل قابلية للنقل، لكنها تزيل الغموض. على سبيل المثال، يسهل تشخيص المشكلة C:\MailMerge\Imageslice.jpgفي نظامي التشغيل ويندوز أو /home/user/mailmerge/images/alice.jpgلينكس مقارنةً بالمسارات النسبية التي يتغير دليلها الأساسي تبعًا لكيفية فتح المستند.

لا تخلط بين تنسيقات مسارات ويندوز ولينكس في ملف الإنتاج نفسه. تُظهر الأمثلة المختلطة في الرسم التوضيحي نوع القيمة التي يحتويها العمود فقط. يجب أن يستخدم مصدر بياناتك الحقيقي مسارات صالحة على الجهاز الذي يُجري عملية الدمج.

يمنع العمود الجيد OutputNameأيضًا تضارب أسماء الملفات. يُفضّل استخدام مُعرّف ثابت أو اسم مُنقّح بدلاً من عنوان بريد إلكتروني أو نص حرّ عشوائي. إذا ظهرت القيمة نفسها مرتين، فحدّد مُسبقًا ما إذا كان يجب على الماكرو استبدالها، أو إضافة لاحقة، أو إيقاف العملية.

الخطوة الثانية: التأكد من أن الكاتب يستطيع قراءة السجلات

يستخدم دمج المراسلات القياسي في برنامج Writer مصدر بيانات مُسجّل. يمكنك استخدام معالج دمج المراسلات، أو مصدر بيانات العناوين، أو مستعرض مصادر البيانات. تُتيح وثائق المساعدة الحالية لبرنامج LibreOffice، والموجودة في قسم الأدوات > معالج دمج المراسلات ، إمكانية إدراج حقول قاعدة البيانات من خلال إدراج > حقل > المزيد من الحقول > قاعدة البيانات . راجع مرجع حقول قاعدة البيانات الرسمي .

برنامج LibreOffice Writer يعرض مصدر بيانات يحتوي على صفوف العملاء وحقول دمج البريد العادية في رسالة.
استخدم عرض مصدر البيانات الخاص بـ Writer للتحقق من أن الأعمدة والسجلات المتوقعة مرئية قبل إضافة أتمتة الصور.

يُعد هذا الفحص مفيدًا حتى لو كان الماكرو النهائي يقرأ جدول البيانات مباشرةً. فهو يكشف المشاكل الشائعة مبكرًا: مثل ورقة العمل الخاطئة، أو أسماء العناوين غير المتوقعة، أو السجلات الفارغة، أو جدول البيانات الذي تم نقله بعد التسجيل.

لإجراء دمج مراسلات نصية عادية، يمكنك سحب عنوان عمود إلى المستند أو إدراج حقل دمج مراسلات من علامة تبويب قاعدة البيانات. يؤكد دليل Writer الرسمي أن هذه الحقول تُستبدل بمحتوى قاعدة البيانات عند تشغيل عملية الدمج. أما بالنسبة للصورة المتغيرة، فلا تفترض أن سحبها ImagePathإلى الصفحة سيحول المسار إلى صورة. ستبقى بيانات ما لم يقم البرنامج بتفسيرها وتحديث كائن رسومي.

الخطوة 3: أنشئ قالب الكاتب وقم بتسمية العنصر النائب للصورة

أنشئ تخطيط الرسالة أو الشهادة أو الشارة أو التقرير في برنامج Writer. بالنسبة للقيم النصية، استخدم إما حقول دمج البريد العادية أو استخدم رموزًا مميزة مثل {FirstName}و {LastName}و {CustomerID}إذا كان الماكرو الخاص بك سيستبدلها تلقائيًا.

بعد ذلك، أدرج صورة نموذجية في المكان الذي يجب أن تظهر فيه الصورة المتغيرة. حدد الحجم المطلوب، والتفاف الصورة، ونقطة التثبيت قبل أتمتة العملية. يوثق LibreOffice تغيير حجم الصورة، وتحديد موضعها، وتثبيتها، والتفافها، وسلوك الصور المرتبطة في فصل "الصور والرسومات" الحالي من برنامج Writer 26.2 .

قالب LibreOffice Writer مع حقول نصية مدمجة وعنصر نائب رسومي محدد باسم MergeImage.
احجز موضع الصورة النهائي في القالب وأعطِ الكائن الرسومي اسمًا ثابتًا مثل MergeImage.

أعطِ الكائن الرسومي اسمًا ثابتًا، مثل MergeImage. قد يختلف مربع حوار الخصائص باختلاف الإصدار، لذا إذا لم تكن متأكدًا من الكائن الذي يعرضه برنامج Writer، فاستخدم أدوات > أدوات التطوير . تستطيع أدوات التطوير في LibreOffice فحص الكائنات الرسومية وخصائصها وأساليبها وواجهاتها في المستند الحالي. وهذا يجعلها أداة تشخيصية أكثر أمانًا من تخمين اسم الكائن الداخلي.

للحصول على تصميم متناسق، استخدم نفس نسبة العرض إلى الارتفاع لجميع الصور المصدرية، أو حدد طريقة قصها. يمكن لبرنامج Writer تغيير حجم الصورة لتناسب أبعاد العنصر النائب، ولكن صورة عمودية مُدرجة في إطار عريض على شكل لافتة ستبدو غير صحيحة ما لم تُعدّل تنسيق الملفات أولاً.

الخطوة الرابعة: أتمتة تصدير الصور والمستندات المتغيرة

عملية الأتمتة الرئيسية بسيطة: افتح القالب، استبدل النصوص، ابحث عن الكائن الرسومي المطلوب، حمّل ملف صورة الصف في هذا الكائن، ثم صدّر النتيجة. توفر وثائق واجهة برمجة تطبيقات UNO الخاصة بـ LibreOffice معلومات getGraphicObjects()حول الوصول إلى الرسومات المضمنة والمرتبطة، بالإضافة إلى TextGraphicObjectخدمة خصائص الرسومات. GraphicURLتم إيقاف استخدام هذه الخاصية لتخزين الكائنات بشكل عام Graphic، ولكن واجهة برمجة التطبيقات الحالية تشير بوضوح إلى أن تعيين عنوان URL خارجي يُحمّل تلك الصورة في الكائن الرسومي. هذا يُسهّل استخدام ماكرو Basic بسيط يعتمد على مسارات الملفات المحلية.

بيئة تطوير LibreOffice Basic تعرض ماكرو دمج البريد الذي يقرأ مسار الصورة ويحدث كائنًا رسوميًا من نوع Writer.
طبقة الأتمتة هي التي تحول قيمة ImagePath إلى الرسم الفعلي المعروض في كل مستند تم إنشاؤه.

المثال التالي صغير الحجم عمدًا. غيّر المسارات الثلاثة، واسم الورقة، وفهرس الأعمدة، وأسماء العناصر النائبة لتتوافق مع ملفاتك. اختبره على سجلين قبل تشغيل مجموعة كبيرة.

Sub MailMergeWithImages()
    Dim calcDoc As Object, sheet As Object, doc As Object
    Dim graphics As Object, imageObj As Object
    Dim row As Long
    Dim firstName As String, lastName As String
    Dim imagePath As String, outputName As String
    Dim sourceURL As String, templateURL As String, outputDir As String

    sourceURL = ConvertToURL("C:\MailMerge\customers.ods")
    templateURL = ConvertToURL("C:\MailMerge\LetterTemplate.odt")
    outputDir = ConvertToURL("C:\MailMerge\Output")

    calcDoc = StarDesktop.loadComponentFromURL(sourceURL, "_blank", 0, Array())
    sheet = calcDoc.Sheets.getByName("Sheet1")

    row = 1  ' row 0 contains headers
    Do While sheet.getCellByPosition(0, row).String <> ""
        firstName = sheet.getCellByPosition(1, row).String
        lastName = sheet.getCellByPosition(2, row).String
        imagePath = sheet.getCellByPosition(4, row).String
        outputName = sheet.getCellByPosition(5, row).String

        doc = StarDesktop.loadComponentFromURL(templateURL, "_blank", 0, Array())

        ReplaceAll doc, "{FirstName}", firstName
        ReplaceAll doc, "{LastName}", lastName

        graphics = doc.getGraphicObjects()
        If graphics.hasByName("MergeImage") Then
            imageObj = graphics.getByName("MergeImage")
            imageObj.GraphicURL = ConvertToURL(imagePath)
        Else
            MsgBox "Graphic object MergeImage was not found."
            doc.close(True)
            Exit Sub
        End If

        Dim args(1) As New com.sun.star.beans.PropertyValue
        args(0).Name = "FilterName"
        args(0).Value = "writer_pdf_Export"
        args(1).Name = "Overwrite"
        args(1).Value = True

        doc.storeToURL(outputDir & outputName & ".pdf", args())
        doc.close(True)
        row = row + 1
    Loop

    calcDoc.close(True)
End Sub

Sub ReplaceAll(doc As Object, findText As String, replacement As String)
    Dim d As Object
    d = doc.createReplaceDescriptor()
    d.SearchString = findText
    d.ReplaceString = replacement
    doc.replaceAll(d)
End Sub

هذا الماكرو عبارة عن نمط، وليس برنامجًا جاهزًا للاستخدام. قد تختلف سياسات أمان الماكرو وقواعد مسار نظام التشغيل وتخطيطات القوالب في إصدارات LibreOffice. من أهم مفاهيم واجهة برمجة التطبيقات (API) التي تم التحقق منها أن Writer يعرض مجموعة كائنات الرسومات الخاصة به، وأن LibreOffice يستطيع تعيين رسم من عنوان URL خارجي. بالنسبة لعمليات النشر واسعة النطاق، يُنصح بتحميل الرسم من خلال Graphicواجهة برمجة التطبيقات الحديثة بدلاً من الاعتماد على سلوك التوافق GraphicURL. المراجع الرسمية هي XTextGraphicObjectsSupplier و TextGraphicObject .

الخطوة 5: قم بتشغيل دفعة صغيرة وتحقق من النتيجة

قبل معالجة مصدر البيانات بالكامل، قم بتشغيل صفين أو ثلاثة صفوف مختلفة عمدًا: صف واحد بصيغة JPG، وصف واحد بصيغة PNG، ويفضل صورة واحدة بنسبة عرض إلى ارتفاع مختلفة. تأكد من كل ما يلي قبل تكبير الصورة:

  • اسم المستلم في المستند يطابق الصورة من نفس صف جدول البيانات.
  • لا يظهر مسار الصورة كنص حرفي في المستند النهائي.
  • اسم ملف الإخراج يطابق السجل المقصود ولا يقوم بالكتابة فوق سجل مستلم آخر.
  • تتناسب الصورة مع المساحة المحجوزة دون دفع النص إلى صفحة جديدة أو تغطية عنصر آخر.
  • يفتح ملف PDF أو ODT المُنشأ بشكل مستقل بعد إغلاق LibreOffice و Calc.

يُعدّ هذا الفحص الأخير مهمًا لأنّ الرسومات المرتبطة والرسومات المضمنة تتصرفان بشكل مختلف. يشرح دليل Writer الحالي أنّ الصورة المرتبطة تبقى مرجعًا منفصلاً للملف، بينما تُصبح الصورة المضمنة جزءًا من المستند. إذا كنت تُرسل ملفات ODT إلى جهاز آخر، فتأكد من أنّ النتيجة لا تعتمد على مسار محلي موجود فقط على الجهاز الذي أجرى عملية الدمج.

الأعطال الشائعة وأسرع الحلول

يُظهر الناتج مسار الملف بدلاً من الصورة

لقد أدرجتَ ImagePathحقل دمج بريد عاديًا، ومن المتوقع أن ينتج عن ذلك نص. احتفظ بالمسار في مصدر البيانات، ولكن دع الماكرو يُحمّله في الكائن الرسومي المُسمى.

كل سجل يحصل على نفس الصورة

لم يتم تغيير صورة القالب بين السجلات، أو أن حلقة التكرار تقرأ خلية ثابتة. سجّل رقم الصف ImagePathأثناء اختبار سجلين. إذا تغير المسار ولكن الصورة لم تتغير، فافحص اسم الكائن الرسومي باستخدام أدوات المطور.

يُشير الماكرو إلى أن برنامج MergeImage غير موجود.

تمت إعادة تسمية الرسم، أو استبداله، أو أنه غير معروض بالاسم الذي تتوقعه. حدد الصورة وافحصها باستخدام الأدوات > أدوات التطوير . تعرض واجهة برمجة تطبيقات UNO كائنات الرسومات بالاسم، لذا يجب أن يتطابق الماكرو والقالب تمامًا.

تختفي الصور على جهاز كمبيوتر آخر

ربما قمت بحفظ مستند لا يزال يحتوي على إشارات إلى ملفات خارجية. إذا كانت قابلية النقل مهمة، فتأكد من تضمين الصورة في الملف المُخرَج، أو قم بتصديره إلى PDF بعد تحميل الصورة. يشرح دليل الصور في LibreOffice الفرق بين الرسومات المرتبطة والرسومات المُضمَّنة، وكيفية كسر الروابط لتضمين الملفات.

يؤدي دمج البريد بتنسيق HTML إلى فقدان الصور

هذا قيد موثق يُنصح بالتحقق منه قبل اختيار طريقة إرسال البريد الإلكتروني. تشير تعليمات LibreOffice إلى أنه عند استخدام تنسيق HTML للرسالة النموذجية، لا تُرسل الصور المضمنة أو المرتبطة مع البريد الإلكتروني. إذا كانت الصورة ضرورية، فاستخدم مرفق PDF أو جرّب طريقة إرسال أخرى بدلاً من افتراض أن دمج البريد بتنسيق HTML سيحفظها. راجع قسم " إنشاء رسالة نموذجية" .

متى يُنصح باستخدام خدمة دمج البريد UNO من LibreOffice بدلاً من ذلك؟

إذا كانت حقول النصوص لديك تستخدم بالفعل دمج المراسلات الأصلي لقاعدة بيانات Writer، وتحتاج إلى تحكم برمجي في المخرجات، فإن LibreOffice يوفر MailMergeخدمةً لذلك. تتضمن خصائصها الموثقة ما يلي DataSourceName: Commandو و DocumentURLو OutputURLو FileNameFromColumnو و SaveAsSingleFile. تُعد واجهة برمجة التطبيقات هذه مفيدةً عندما ترغب في أتمتة دمج المراسلات القياسي من خلال التعليمات البرمجية. مع ذلك، لا توثق هذه الواجهة حقل مسار ملف الصورة لكل سجل، لذا قد تحتاج إلى دمج تنفيذ دمج المراسلات مع معالجة الكائنات الرسومية. راجع مرجع خدمة دمج المراسلات الرسمي .

قائمة التحقق النهائية

  • استخدم دمج البريد العادي في برنامج Writer عندما تكون الصورة ثابتة لكل مستلم.
  • استخدم ImagePathعمودًا واحدًا نظيفًا عندما تختلف الصورة باختلاف السجل.
  • قم بتسمية العنصر النقطي للرسم البياني الخاص بالكاتب وحافظ على ثبات أبعاده.
  • قم بحل مسار الصورة في عملية التشغيل الآلي؛ لا تتوقع أن يصبح حقل دمج النص صورة تلقائيًا.
  • اختبر سجلين أو ثلاثة قبل تشغيل دفعة كاملة.
  • افتح الملفات المصدرة بعد إغلاق المستندات المصدرية للتأكد من أن المخرجات مكتفية ذاتيًا.

بالنسبة لمعظم المشاريع الصغيرة والمتوسطة، توفر ورقة عمل Calc مع قالب Writer ووحدة ماكرو Basic قصيرة أفضل توازن بين الشفافية والتحكم. يتطلب الأمر إعدادًا أكثر تعقيدًا من دمج البريد النصي العادي، ولكن يمكنك معرفة الصف الذي يحتوي على كل صورة بدقة، واختيار اسم ملف الإخراج، والتحقق من النتيجة قبل إرسال مئات الملفات المُخصصة.

اترك تعليقاً

كيفية ربط محرري سطح المكتب ONLYOFFICE بخادم ownCloud

كيفية ربط محرري سطح المكتب ONLYOFFICE بخادم ownCloud

قم بتوصيل محرري سطح المكتب ONLYOFFICE بخادم ownCloud الخاص بك، وقم بتسجيل الدخول، وافتح ملفات السحابة، وقم بإدارة الاتصال، وقم باستكشاف أخطاء الإعداد الشائعة وإصلاحها.

كيفية إصلاح مشكلة ارتفاع استهلاك وحدة المعالجة المركزية في Collabora Online من خلال loolwsd / coolwsd

كيفية إصلاح مشكلة ارتفاع استهلاك وحدة المعالجة المركزية في Collabora Online من خلال loolwsd / coolwsd

قم باستكشاف أخطاء استخدام وحدة المعالجة المركزية العالية في Collabora Online وإصلاحها من خلال تحديد عمليات مجموعة الأدوات المشغولة، والتحقق من المقاييس والسجلات، وضبط التزامن والتنظيف، والتحقق من الإصلاحات بأمان.

كيفية تخصيص مستندات ONLYOFFICE بشعارك وألوانك

كيفية تخصيص مستندات ONLYOFFICE بشعارك وألوانك

تعرف على كيفية تخصيص العلامة التجارية لـ ONLYOFFICE Docs بشعار رأس الصفحة وألوان الواجهة، بما في ذلك حدود الترخيص، وإعداد JSON الخاص بالسمات، ومسارات Docker، والاختبار.

إصلاح مشاكل وضوح النصوص في الوضع الداكن في برنامج LibreOffice Calc

إصلاح مشاكل وضوح النصوص في الوضع الداكن في برنامج LibreOffice Calc

قم بإصلاح النصوص التي يصعب قراءتها في LibreOffice Calc عن طريق التحقق من سمة التطبيق، وخط الخلية وألوان التعبئة، والأنماط، والتنسيق الشرطي - ثم تحقق من مخرجات الطباعة.

إصلاح خطأ "المستند مقفل بواسطة مستخدم غير معروف" في LibreOffice

إصلاح خطأ "المستند مقفل بواسطة مستخدم غير معروف" في LibreOffice

قم بإزالة تحذير قفل المستخدم غير المعروف من LibreOffice بأمان. تحقق من الجلسات النشطة، واحمِ نسخة، وأزل القفل القديم الذي تم التحقق منه فقط، واختبر المستند.

إصلاح مشكلة الكتابة من اليمين إلى اليسار باللغتين العربية والعبرية في برنامج LibreOffice Writer

إصلاح مشكلة الكتابة من اليمين إلى اليسار باللغتين العربية والعبرية في برنامج LibreOffice Writer

أصلح النصوص العربية أو العبرية التي تتدفق أو تتماشى أو تختلط مع الإنجليزية بشكل غير صحيح في برنامج LibreOffice Writer. فعّل تخطيط النص المعقد، وحدد اتجاه الفقرة، وتحقق من النتيجة.

دليل مبسط لوظائف VLOOKUP وXLOOKUP في LibreOffice Calc

دليل مبسط لوظائف VLOOKUP وXLOOKUP في LibreOffice Calc

تعلم VLOOKUP و XLOOKUP في LibreOffice Calc، بما في ذلك التطابقات التامة، والبحث الأيسر، ونتائج عدم العثور، والبحث العكسي، وبدائل INDEX/MATCH، والأخطاء الشائعة.

كيفية إصلاح خطأ "فشل التحقق من صحة إثبات WOPI" في Collabora Online

كيفية إصلاح خطأ "فشل التحقق من صحة إثبات WOPI" في Collabora Online

قم باستكشاف أخطاء التحقق من صحة إثبات WOPI في Collabora Online وإصلاحها عن طريق التحقق من مفاتيح الاكتشاف، وتدوير المفاتيح، وعناوين URL للوكيل، والطوابع الزمنية، وقوائم السماح للمضيف.

كيفية تفعيل خاصية تتبع التغييرات افتراضيًا في برنامج ONLYOFFICE Docs

كيفية تفعيل خاصية تتبع التغييرات افتراضيًا في برنامج ONLYOFFICE Docs

قم بتمكين ميزة تتبع التغييرات للجميع في مستند ONLYOFFICE، واحتفظ بها نشطة بعد إعادة فتحه، وافهم حدود الإعداد الافتراضي العام.

كيفية ضبط مهلة الخمول لجلسات التحرير في Collabora

كيفية ضبط مهلة الخمول لجلسات التحرير في Collabora

قارن بين إعدادات Collabora Online الخاصة بكل عرض، وعدم التركيز، وخمول المستند، والحفظ التلقائي، ومهلات الوكيل، ثم اختر الإعدادات المناسبة لعملية النشر الخاصة بك وتحقق منها.