تحديد فاصل السطر

تتبع انكسار الخط للنص متعدد الأسطر

يُظهر مقطع الشيفرة التالي كيفية تتبع سلوك انكسار الخط لنص متعدد الأسطر داخل مستند PDF.

تم تعريف دالة track_line_breaking() لعرض هذه الوظيفة. يبدأ بتحديد مسارات ملفات الإخراج لكل من مستند PDF الذي تم إنشاؤه وملف نصي مرافق يحتوي على معلومات حول انكسار الخط.

داخل الدالة، يتم إنشاء كائن مستند PDF جديد، ويتم إضافة صفحة جديدة إليه. بعد ذلك، يتم استخدام حلقة لتوليد أربع نسخ من TextFragment تحتوي على نص مع فواصل أسطر ("\r\n") مدرجة داخل السلسلة لمحاكاة النص متعدد الأسطر.

يتم تكوين كل TextFragment بحجم خط يبلغ 20 نقطة قبل إضافته إلى فقرات الصفحة.

بعد إضافة جميع TextFragment، يتم حفظ المستند.

ثم تتابع الدالة لاستخراج الإشعارات حول انكسار الخط من الصفحة الثانية من مستند PDF الذي تم إنشاؤه باستخدام طريقة get_notifications(). هذه الإشعارات تُكتب إلى ملف نصي محدد مسبقًا.

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


    import aspose.pdf as ap

    def track_line_breaking():
        """تتبع كسر الأسطر في TextFragment متعدد الأسطر"""
        output_pdf = DIR_OUTPUT_TEXTS + "track_line_breaking.pdf"
        output_txt = DIR_OUTPUT_TEXTS + "track_line_breaking.txt"

        # إنشاء كائن وثيقة جديد
        document = ap.Document()
        page = document.pages.add()

        for i in range(4):
            text = ap.text.TextFragment(
                "Lorem ipsum \r\ndolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
            )
            text.text_state.font_size = 20
            page.paragraphs.add(text)
        document.save(output_pdf)

        notifications = document.pages[1].get_notifications()
        with open(output_txt, "w") as f:
            f.write(notifications)