إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

التعامل مع [ libreoffice & openoffice ] من خلال python-uno ( الجزء الثاني )

تقليص
X
تقليص

  • التعامل مع [ libreoffice & openoffice ] من خلال python-uno ( الجزء الثاني )

    بسم الله والحمدلله والصلاة والسلام على رسول الله اما بعد ,,

    شرحنا في الجزء الاول عمل مستند بسيط اليوم ان شاء الله سنقوم بتطوير الكود ونتعرف على خصائص اكثر

    المثال :

    كود PHP:
    #!/usr/bin/python3
    # -*- coding: utf-8 -*-

    import uno
    import os
    import time


    cd 
    os.path.abspath(os.curdir)
    def dt():
        try:
            
    os.popen('soffice --accept="socket,host=localhost,port=2002;urp;StarOffice.ServiceManager" --norestore  --nologo --headless &')
            
    time.sleep(3)
            
    localcontext uno.getComponentContext()
            
    resolver localcontext.getServiceManager().createInstanceWithContext("com.sun.star.bridge.UnoUrlResolver"localcontext)
            
    context resolver.resolve("uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext")
            
    desktop context.getServiceManager().createInstanceWithContext("com.sun.star.frame.Desktop"context)
            return 
    desktop
        except Exception 
    as e:
            print(
    e)
        
    doc dt().loadComponentFromURL"private:factory/swriter","_blank"0, () )
    text doc.Text
    cursor 
    text.createTextCursor()
    cursor.gotoStart(False)
    cursor.gotoEnd(True)
    cursor.CharColor16711680
    cursor
    .CharUnderline=True
    cursor
    .setPropertyValue("ParaAdjust"3#left=0 right=1 center=3
    text.insertStringcursor"عنوان الموضوع في الوسط\n\r")
    cursor.CharColor3288806
    cursor
    .CharUnderline=False
    cursor
    .setPropertyValue("ParaAdjust"1)
    text.insertStringcursor"يبداء نص الموضوع من اليمين كما هو ظاهر الان   \n\r")
    doc.storeToURL('file://'+os.path.join(cd,'test3.odt'),())
    doc.dispose()
    os.system("pkill soffice"
    الجديد في السكريبت هو عمل داله dt وضيفتها تشغيل soffice وتجهيز الاتصال به و هي الطريقه اللتي سوف نستخدمها في جميع الشروحات ايضا تم اضافة --headless
    في هذا السطر :

    كود PHP:
    os.popen('soffice --accept="socket,host=localhost,port=2002;urp;StarOffice.ServiceManager" --norestore  --nologo --headless &'
    وتعني ان لا يقوم بتشغيل الواجهه الرسوميه يجب ان يكون libreoffice مغلق

    كود PHP:
    doc dt().loadComponentFromURL"private:factory/swriter","_blank"0, () ) 
    قمنا بفتح مستند جديد تستطيع تغييره الى مستند محفوظ في جهازك هكذا :


    كود PHP:
    doc dt().loadComponentFromURL"file:///home/username/doc.odt","_blank"0, () ) 


    في هذه الاسطر :
    كود PHP:
    cursor.gotoStart(False)
    cursor.gotoEnd(True
    جعلنا المؤشر يكتب من النهايه حتى لو قمنا بتغيير خصائصه عدا هذه الخصائص المذكوره في السطرين

    كود PHP:
    cursor.CharColor16711680
    cursor
    .CharUnderline=True
    cursor
    .setPropertyValue("ParaAdjust"3#left=0 right=1 center=3
    text.insertStringcursor"عنوان الموضوع في الوسط\n\r"
    السطر الاول غيرنا اللون للأحمر
    السطر الثاني وضعنا خط اسفل النص
    السطر الثالث وضعنا النص في منتصف الصفحه وضعة الاتجاهات في نفس الكود للفائده
    السطر الرابع ادرجنا النص في المستند ( يجب وضع (\r) حتى لايتم تطبيق التغيير على النصوص الاخرى . جرب عدم وضعها حتى تتضح الصور لديك )

    كود PHP:
    cursor.CharColor3288806
    cursor
    .CharUnderline=False
    cursor
    .setPropertyValue("ParaAdjust"1)
    text.insertStringcursor"يبداء نص الموضوع من اليمين كما هو ظاهر الان   \n\r"
    السطر الاول غيرنا اللون للازرق
    السطر الثاني الغينا الخط تحت النص
    السطر الثالث وضعنا النص في جهة اليمين
    السطر الرابع ادرجنا النص

    كود PHP:
    doc.storeToURL('file://'+os.path.join(cd,'test3.odt'),()) 
    هنا قمنا بحفظ المستند في نفس مكان تنفيذ الكود باسم test3.odt هذه الطريقه تعني حفظ باسم


    كود PHP:
    doc.dispose()
    os.system("pkill soffice"
    السطر الاول ترك المستند او الخروج منه
    السطر الثاني ايقاف soffice

    هذا مالدي الان واسال الله لي ولكم التوفيق
      لا يمكن إضافة تعليقات.

    التصانيف

    تقليص

    Latest Articles

    تقليص

    • تجربة تثبيت توزيعة ديبيان بجانب ويندوز بدون usb او cd
      أحمد غريب
      التجربة تمت على VirtualBox النظام ويندوز اكسبي قرص صلب واحد قسمين c و d

      التجربة قسمين القسم الاول تجهيز ملف iso دبيان لعملية الاقلاع لايف من الهاردسك والقسم الثاني عملية الثتبيت تحتاج الى
      27-11-2016, 03:08 PM
    • عداد الإستغفار
      مبتدى في للينكس
      السلام عليكم ورحمة الله و بركاته

      شرح فكرة السكربت:

      عداد الأستغفار يعمل عند الضغط على أختصار من الكيبورد و عند كل ضغطة يضيف 1 إلى العداد و يظهر إطار صغير في منتصف الشاشة لعرض العدد لمدة ثانية ثم يتم أغلاقه تلقائياً . أذا وصل العداد إلى 100 يرجع إلى الصفر. يتم حفظ العدد في ملف count.txt يتم إنشاءه تلقائياً بواسطة السكربت.


      شرح إعداد السكربت:

      1. قم بفتح مجلد Home وقم بإنشاء مجلد بإسم counter

      2. في داخل المجلد counter قم بإنشاء ملف نصي بإسم Counter.java , ثم قم بنسخ السكربت التالية و ضعه في داخل الملف ثم قم بالحفظ



      :
      package counter; import java.awt.BorderLayout; import java.awt.Event; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import java.io.PrintWriter; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JButton; import javax.swing.SwingConstants; public class Counter extends JFrame { private static String fileName = System.getProperty("user.dir") + "/counter/count.txt"; public Counter() { this.setTitle("Counter"); this.setResizable(false); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.pack(); this.setSize(150, 150); this.setVisible(true); } public static void main(String[] args) { Counter obj = new Counter(); int count = 0; try { try { try { String countString = readFile(fileName, StandardCharsets.UTF_8).trim(); count = (int) Integer.parseInt(countString); } catch (Exception e) { outResult(fileName, String.valueOf(count)); } finally { if (count
      ...
      23-11-2016, 02:11 AM
    • سكربت بايثون لتسهيل تثبيت بعض الأشياء في فيدورا
      yucef
      بسم الله الرحمن الرحيم
      السلام عليكم ورحمة الله وبركاته




      قمت بعمل سكربت بايثون لتسهل تثبيت بعض الأشياء لفيدورا ,طريقة تنزيل وتشغيل السكربت مشروحة في هذا الرابط .

      https://github.com/yucefsourani/arfedy

      ...
      23-11-2016, 02:09 AM
    • إعادة تسمية الملفات باستخدام rename
      OtmanGX
      لينكس على السّريع : إعادة تسمية الملفات باستخدام rename


      تذكير بالموضوع السابق : إعادة تسمية الملفات باستخدام mv

      كما في المرة السابقة سنتحدث اليوم عن إعادة تسمية مجموعة من الملفات لكن باستخدام أداة أخرى وهي rename ؛ بحيث أنّنا لن نضطر لاستعمال حلقات التكرار والأمر مشابه نوعا ما لما يقوم به الأمرsed ، لكن الأداة rename تستخدم التعابير النظامية perlexpr لكننا سنذكر فقط التعابير النظامية المشتركة بين الاثنين .
      بعض خصائص الأمر :
      n, –no-act- : يوصى باستخدام هذه الخاصية كثيرا ، فمن خلالها يتم إظهار التغييرات التي ستتم بدون إجراء أي تعديل
      f, –force : الكتابة على الملفات بدون أدنى تحذير
      v, –verbose – : تفعيل وضع verbose ليتم إظهار التغييرات الجارية
      ويكون الشكل العام للأمر كالتالي :

      :
      rename [option] 's/old-name/new-name/' file
      باستبدال file بالملفات التي تود تغيير أسمائها
      كمثال أوّلي مثلا نريد استبدال المسافات الفارغة المتواجدة في أسماء الملفات أو المجلدات بالرمز _ :

      المثال 1 :
      :
      rename 's/ /_/g' *
      g ليتم الاستبدال في أكثر من موضع إن وجد
      الآن سنقوم كالعادة بإنشاء مجلد نقوم فيه بأمثلتنا
      ...
      23-11-2016, 02:05 AM
    • المراقبة العالمية ! Global surveillance
      عبدالرحمـن محمد
      السلام عليكم ورحمة الله

      مقدمة :
      في يونيو 2013، سرَّب إدوارد سنودين، وهو عميل متعاقد مع وكالة الأمن القومي، مستندات تّصِف بريسم "ومجموعة برامج أخري" بأنه برنامج يتيح مراقبة معمقة للاتصالات الحية والمعلومات المخزنة. ويمكن من استهداف أي عميل لشركة منخرطة في برنامج بريسم، في حال كان هذا العميل يسكن خارج الولايات المتحدة، أو كان مواطنًا أمريكيًا له اتصالات تتضمن محتويات وِب خاصة بأشخاص خارج الولايات المتحدة. البيانات التي يقال أن بريسم يمكِّن من الحصول عليها تتضمن، رسائل البريد الإلكتروني، ومحادثات الفيديو والصوت، والصور، والاتصالات الصوتية ببرتوكول الإنترنت، وعمليات نقل الملفات، وإخطارات الولوج وتفاصيل الشبكات الاجتماعية.
      كشفت الوثائق المسرّبة أن NSA كانت قادرة على الدخول مباشرة إلى الخوادم الخاصة لكل من
      ...
      23-11-2016, 02:04 AM
    • اضافة مستخدم لينيكس جديد و استعمال نفس اسم الحساب لMySQL و قاعدة بيانات بإسمه ايضًا.
      superlinux
      طبعًا هذه استعملها لفتح حساب جديد لشخص يريد ان يستعمل مجلده المنزل (او home directory بالانجليزي) لحفظ موقع الويب خاصته. يعني هذه طريقة ارجو تكون خفيفة ظريفة لإدارة الخادم عليكم. و هكذا ابدؤوا بيع المواقع عالسريع.

      انا استعمل دبيان 8.0 جسي هنا.

      قبل أي شيء, لتوظيف المجلدات المنزل كلها لتكون محافظ لصفحات ويب لكل مستخدم. نفعّل الوحدة userdir:
      :
      a2enmod userdir
      بس على شان تفهم كيف تحفظ الامر السابق: a2 = apache2 web server , enmod =enable module
      هناك الكثير من الاوامر تخص خادم الويب اباتشي تبدأ بــ a2 .

      ثم حرر بأي محرر نصي مثل vi او pico ملف اعدادات الاباتشي:

      :
      vi /etc/apache2/apache2.conf
      ضع في آخر سطر في الملف على سطر مستقل لوحده ما يلي:
      :
      UserDir public
      UserDir disable root
      الكلمة public_html هو اسم مجلد موجود في المجلد المنزل مباشرة. بمعنى لو كان عندك اسم مستخدم اسمه saleem (سليم) , لازم سليم يضع موقعه على الخادم داخل مسار القرص /home/saleem/public_html/ . و التعل...
      23-11-2016, 02:03 AM
    يعمل...
    X