عمليات المحتوى

عمليات المحتوى

عمليات المحتوى

يتم عرض صفحات PDF بواسطة تسلسل من المشغلات المخزنة في تدفق المحتوى. Aspose.PDF FOSS for .NET يكشف عن هذه المشغلات عبر OperatorCollection على كل Page، ويوفر ContentStreamBuilder لإنشاء محتوى جديد برمجياً.


قراءة مشغلات تدفق المحتوى

كل Page يحتوي على خاصية Contents تُعيد OperatorCollection. قم بالتكرار لفحص كل مُعامل.

using var doc = Document.Open(pdfBytes);
var page = doc.Pages[1];

foreach (var op in page.Contents)
{
    Console.WriteLine(op.ToString());
}

إنشاء تدفقات المحتوى

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

var builder = new ContentStreamBuilder();
builder.SaveState();
builder.SetFillColor(1.0, 0.0, 0.0);  // Red fill
builder.SetMatrix(1, 0, 0, 1, 72, 700); // Translate
// ... add drawing or text operators
builder.RestoreState();

حالة الرسومات

GraphicsState يتتبع مصفوفة التحويل الحالية، حالة النص، وقيم الألوان أثناء تنفيذ العمليات. العمليات الرئيسية:

var gs = new GraphicsState();
gs.Save();
gs.ConcatMatrix(new Matrix(1, 0, 0, 1, 100, 200));
gs.Restore();

مشغلات اللون

SetColor و SetColorStroke يحددان ألوان التعبئة والحد على التوالي. إنهما يقبلان مكونات RGB أو CMYK أو تدرج الرمادي.

// RGB fill color (blue)
var fill = new SetColor(0, 0, 1);

// RGB stroke color (red)
var stroke = new SetColorStroke(1, 0, 0);

مشغلات النص

ShowText يعرض سلسلة نصية في موضع النص الحالي باستخدام الخط والحجم الحاليين من حالة الرسومات.

var textOp = new ShowText("Hello, PDF!");

SetTextMatrix يحدد موضع النص عن طريق تعريف مصفوفة تحويل لمساحة النص.


حالة الرسومات الموسعة

ExtGState يتحكم في خصائص العرض المتقدمة مثل التعبئة والحد ألفا (الشفافية) ووضع المزج.


نصائح وأفضل الممارسات

  • دائمًا قم بزوج SaveState / RestoreState (أو عوامل q / Q) لتجنب إفساد مكدس حالة الرسومات.
  • استخدم ContentStreamBuilder للمحتوى الجديد بدلاً من إنشاء كائنات العامل يدويًا.
  • افحص OperatorCollection للقراءة فقط قبل التعديل — قد تتسبب تسلسلات العوامل غير المتوقعة في مشكلات في العرض.
  • يجب أن تتطابق عوامل اللون مع مساحة اللون الحالية (RGB أو CMYK أو تدرج الرمادي).
  • استخدم SetAdvancedColor لأنماط ومساحات اللون المعتمدة على ICC.

المشكلات الشائعة

المشكلةالسببالحل
النص غير مرئي بعد إضافة المشغلاتلم يتم تعيين خط في حالة النصأضف مشغل SetFont قبل ShowText
الألوان تظهر بشكل خاطئعدم تطابق مساحة اللون (RGB مقابل CMYK)استخدم المشغل المتطابق مع مساحة اللون النشطة
تجاوز مكدس حالة الرسوماتأزواج Save / Restore غير متوازنةتأكد من أن كل SaveState له RestoreState مطابق
المحتوى يظهر في موضع خاطئتحويل المصفوفة مفقود أو غير صحيحتحقق من قيم SetMatrix أو ConcatMatrix

الأسئلة المتكررة

ما هو تدفق محتوى PDF؟

تدفق المحتوى هو تسلسل من المشغلات التي تصف كيفية عرض صفحة — رسم المسارات، وضع النص، تعيين الألوان، وإدارة حالة الرسومات.

هل يمكنني إضافة محتوى جديد إلى صفحة موجودة؟

نعم. الوصول إلى page.Contents وإضافة مشغّلات جديدة، أو استخدم ContentStreamBuilder لإنشاء تسلسل وإلحاقه.

كيف أجعل النص شفافًا؟

استخدم ExtGState لتعيين ألفا التعبئة (ca) إلى قيمة بين 0 (شفاف تمامًا) و 1 (معتم تمامًا).


ملخص مرجع API

Class / MethodDescription
OperatorCollectionتسلسل عوامل تشغيل تدفق المحتوى على صفحة
ContentStreamBuilderمنشئ متسلسل لبناء تسلسلات العوامل
ContentStreamBuilder.SaveStateدفع حالة الرسومات الحالية إلى المكدس
ContentStreamBuilder.RestoreStateإزالة حالة الرسومات من المكدس
ContentStreamBuilder.SetFillColorتعيين لون التعبئة في مساحة اللون الحالية
ContentStreamBuilder.SetMatrixتطبيق تحويل إحداثي
GraphicsStateيتتبع مصفوفة التحويل، اللون، وحالة النص
SetColorعامل تشغيل يحدد لون غير الخط (التعبئة)
SetColorStrokeعامل تشغيل يحدد لون الخط
SetAdvancedColorعامل تشغيل لمساحات اللون القائمة على النمط / ICC
ShowTextعامل تشغيل يرسم سلسلة نصية
SetTextMatrixعامل تشغيل يحدد موضع النص عبر مصفوفة
ExtGStateحالة رسومات موسعة (ألفا، وضع الدمج)

انظر أيضًا

 العربية