إدارة المستندات

إدارة المستندات

إدارة المستندات

Document هو الكائن الجذر في Aspose.PDF FOSS لـ .NET. يمثل
ملف PDF كامل ويوفر الوصول إلى الصفحات والبيانات الوصفية وحقول النماذج، وجميع
هياكل PDF الأخرى. افتح الملفات الموجودة باستخدام Document.Open وأنشئ
ملفات جديدة باستخدام مُنشئ Document.


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

// Open from a byte array
using var doc = Document.Open(File.ReadAllBytes("input.pdf"));

// Open from a file path
using var doc2 = new Document("input.pdf");

// Create a new empty document
using var newDoc = new Document();
newDoc.Pages.Add();
newDoc.Save("new.pdf");

العمل مع الصفحات

PageCollection يدير صفحات المستند. يمكن الوصول إلى الصفحات بواسطة فهرس يبدأ من 1، إضافة صفحات جديدة، أو إزالة الصفحات الموجودة.

using var doc = Document.Open(pdfBytes);

// Access first page
var page = doc.Pages[1];

// Add a blank page
var newPage = doc.Pages.Add();

// Get page count
int count = doc.Pages.Count;

هندسة الصفحة

كل صفحة تُعرّف عدة صناديق حدودية. استخدم طرق الضبط على Page لتعديلها.

var page = doc.Pages[1];
page.SetMediaBox(new Rectangle(0, 0, 612, 792));
page.SetCropBox(new Rectangle(36, 36, 576, 756));
page.SetRotation(90);

حفظ المستندات

احفظ إلى مسار ملف أو تدفق أو مصفوفة بايت.

// Save to file
doc.Save("output.pdf");

// Save to stream
using var ms = new MemoryStream();
doc.Save(ms);

المرفقات

FileSpecification يمثل مرفقات الملفات المضمنة في ملف PDF.

var spec = new FileSpecification("data.csv", "Embedded data file");
doc.EmbeddedFiles.Add(spec);

طوابع الصورة

ImageStamp يضع صورة نقطية على صفحة في موضع محدد.

var stamp = new ImageStamp("logo.png");
stamp.Put(doc.Pages[1]);
doc.Save("stamped.pdf");

مجموعات المشغل

OperatorCollection على كل صفحة يحتوي على عوامل تشغيل تدفق المحتوى الخام. استخدمه لفحص المحتوى منخفض المستوى أو التلاعب به.

var ops = doc.Pages[1].Contents;
foreach (var op in ops)
{
    // Inspect each operator
}

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

  • قم بلف Document داخل بيان using لإطلاق مقبضات الملفات على الفور.
  • استخدم Document.Open(byte[]) لتدفقات العمل في الذاكرة لتجنب مشكلات قفل الملفات.
  • عدّل صناديق الصفحة (MediaBox، CropBox) قبل إضافة المحتوى لضمان مساحة إحداثيات صحيحة.
  • استدعِ Save مرة واحدة فقط بعد جميع التعديلات — عمليات الحفظ المتكررة أبطأ لكنها آمنة.
  • استخدم PageCollection.Accept(AnnotationSelector) لمعالجة التعليقات التوضيحية على دفعات عبر جميع الصفحات.

مشكلات شائعة

IssueCauseFix
Document.Open يطرح استثناءً على ملف PDF صالحالملف مشفر بكلمة مرورقم بتمرير معامل كلمة المرور في المُنشئ
عدد الصفحات 0 بعد الإنشاءDocument() الجديد يبدأ فارغًااستدعِ doc.Pages.Add() لإضافة صفحة فارغة
الملف المحفوظ أكبر من المتوقعالصور أو الخطوط مدمجة عدة مراتاستخدم التحسين (انظر دليل التحويل والتحسين)
Pages[0] يطرح خطأ فهرسالصفحات تبدأ من 1، وليس من 0استخدم Pages[1] للصفحة الأولى

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

كيف يمكنني دمج مستندي PDF؟

استخدم PdfFileEditor.Concatenate من Facades API، أو انسخ الصفحات يدويًا من مستند إلى آخر باستخدام PageCollection.

هل يمكنني فتح ملف PDF من عنوان URL أو تدفق؟

نعم. اقرأ محتوى URL إلى byte[] أولاً، ثم مرره إلى Document.Open(byte[]).

كيف أحذف صفحة؟

استدعِ doc.Pages.Delete(pageNumber) حيث pageNumber يبدأ من 1.

هل Document thread-safe؟

لا. يجب أن يعمل كل خيط مع مثاله الخاص Document.


ملخص مرجع API

الفئة / الطريقةالوصف
Documentكائن PDF الجذر؛ يحتوي على الصفحات والبيانات الوصفية وحقول النموذج
Document.Openمصنع ثابت لفتح PDF من مصفوفة بايت
Document.Saveتسلسل المستند إلى ملف أو تدفق
Pageصفحة PDF واحدة مع المحتوى والتعليقات التوضيحية والهندسة
Page.SetMediaBoxتحديد صندوق وسائط الصفحة
Page.SetCropBoxتحديد منطقة القص المرئية
Page.SetRotationتدوير الصفحة بزاوية 0 أو 90 أو 180 أو 270 درجة
PageCollectionمجموعة مرتبة من الصفحات في مستند
PageCollection.Addإضافة صفحة فارغة
OperatorCollectionمشغلات تدفق المحتوى الخام لصفحة
FileSpecificationوصف مرفق ملف مدمج
ImageStampختم تغطية صورة للصفحات
XFormCollectionكائنات XObjects للنموذج القابلة لإعادة الاستخدام في المستند

انظر أيضًا

 العربية