مشغلي تدفق المحتوى

تظهر هذه الدليل كيفية الوصول إلى وتلاعب تشغيل محركات تدفق المحتوى PDF باستخدام ContentStreamParser و ContentStreamBuilder في Aspose.PDF FOSS لـ Java . سوف تتعلم قراءة بايتات محتوى الصفحة الخام واستخدام المحلل لفحص الرسم أوامر.

مواصلات المحتوى

يتم ترميز محتوى الصفحة PDF كسلسلة من المشغلين في تيار المحتوى. كل صفحة تحوي ملفاتها إلى المخططات التي تمتلكها. Page يقدم الوصول إلى مشغلي المحتوى عبر getContents() الممتلكات.

ContentStreamParser

ContentStreamParser تحليل البايتات من تيار المحتوى الخام إلى كائنات المشغل،, تمكين التفتيش البرمجي لأوامر رسم الصفحة. مرور بايتات الخام من page.getContents().toByteArray() إلى بناء المحلل:

try (Document doc = new Document("input.pdf")) {
    PageCollection pages = doc.getPages();
    Page page = pages.get(1);
    byte[] contentBytes = page.getContents().toByteArray();
    ContentStreamParser parser = new ContentStreamParser(contentBytes);
    // Iterate over parsed operators
}

ContentStreamBuilder

ContentStreamBuilder يخلق تدفقات محتويات جديدة لتضمينها في Page. استخدام ContentStreamBuilder عند بناء محتوى الصفحة برمجياً بدلاً من ذلك من تعديل تيار موجود. بعد بناء التدفق، يعيدونها إلى الصفحة و حفظ المستند.

مرجع المشغل

يتم تعريف مشغلات تدفق المحتوى PDF في ISO 32000-1:2008، الجدول A.1. الشائعة. تشمل المشغلات مشغلي النص (BT, ET, Tf, Tj), مشغلات الحالة الرسومية (q, Q, cm), ومشغلي المسارات (m, l, h, f, S).

يتابع مشغلو تيار المحتوى مواصفات PDF (ISO 32000-1:2008، §8). استخدام ContentStreamParser للتكرار على المشغلين في تيار موجود.

الوصول إلى محتوى الصفحة الخام

لقراءة بايتات البيانات الخام من صفحة محتوى التدفق، دعوة page.getContents().toByteArray(). يمكن بعد ذلك فحص البايتات أو فك الشفرة، أو تمريرها إلى ContentStreamParser:

try (Document doc = new Document("input.pdf")) {
    PageCollection pages = doc.getPages();
    Page page = pages.get(1);
    byte[] contentBytes = page.getContents().toByteArray();
    System.out.println("Content stream size: " + contentBytes.length + " bytes");
}

انظر أيضا

 العربية