إنشاء الصفحة
إنشاء الصفحة
توفر Aspose.PDF FOSS for .NET محرك تخطيط يعتمد على الفقرات لتوليد محتوى PDF. تسمح لك الجداول، الصناديق العائمة، رؤوس/تذييلات الصفحات، والطوابع بإنشاء صفحات منظمة دون الحاجة إلى بناء مشغلات تدفق المحتوى يدويًا.
إضافة فقرات
Page.Paragraphs هو نقطة الدخول لإضافة عناصر المحتوى.
using var doc = new Document();
var page = doc.Pages.Add();
page.Paragraphs.Add(new TextFragment("Hello, PDF!"));
doc.Save("hello.pdf");الجداول
Table يدعم الصفوف، الخلايا، عرض الأعمدة، الحدود، وحالة النص.
var table = new Table();
table.ColumnWidths = "100 200 100";
var row = table.Rows.Add();
row.Cells.Add("Name");
row.Cells.Add("Description");
row.Cells.Add("Price");
page.Paragraphs.Add(table);تنسيق الخلية
Cells.Add تُعيد Cell حيث يمكنك تكوين الحدود، والمسافات الداخلية، والمحتوى المتداخل.
var cell = row.Cells.Add("Styled cell");
cell.Border = new BorderInfo(BorderSide.All, 0.5f);
cell.Margin = new MarginInfo(5, 5, 5, 5);صناديق عائمة
FloatingBox يضع المحتوى عند إحداثيات مطلقة على الصفحة.
var box = new FloatingBox(200, 100);
box.Left = 72;
box.Top = 700;
box.Paragraphs.Add(new TextFragment("Positioned text"));
page.Paragraphs.Add(box);الترويسات والتذييلات
HeaderFooter يضيف محتوى متكرر في أعلى أو أسفل الصفحات.
var header = HeaderFooter.FromText("Document Title");
header.ApplyAsHeader(page);
var footer = HeaderFooter.FromText("Page {0}");
footer.ApplyAsFooter(page);طوابع الصفحة
PdfPageStamp يضع محتوى صفحة PDF واحدة فوق أخرى.
var stamp = new PdfPageStamp("watermark.pdf");
stamp.Put(page);نصائح وأفضل الممارسات
- استخدم
Table.ColumnWidthsكسلسلة من القيم النقطية مفصولة بمسافات للتحكم في التخطيط. FloatingBoxمفيد للتموضع المطلق — اجمعه معTableللمحتوى المنظم.HeaderFooter.FromTextيدعم{0}كعنصر نائب لرقم الصفحة.- أضف جميع الفقرات قبل استدعاء
Save— محرك التخطيط يعالج المحتوى بالترتيب. - استخدم
BorderInfoلإضافة حدود للجداول والخلايا والصناديق العائمة.
مشكلات شائعة
| المشكلة | السبب | الإصلاح |
|---|---|---|
| الجدول يتجاوز الصفحة | عدد الصفوف كثير جدًا لصفحة واحدة | المكتبة تقوم بالتقسيم التلقائي للصفحات؛ عدّل الهوامش إذا لزم الأمر |
| العنوان غير ظاهر | ApplyAsHeader تم استدعاؤه بعد Save | طبق العناوين قبل الحفظ |
| FloatingBox في موضع خاطئ | الإحداثيات مقاسة من أعلى اليسار بوحدات الفقرة | تحقق من أن الوحدات تتطابق مع توقعاتك |
الأسئلة المتكررة
هل يمكنني إنشاء جداول متعددة الصفحات؟
نعم. عندما يتجاوز الجدول ارتفاع الصفحة المتاح، فإنه يستمر تلقائيًا في الصفحة التالية.
كيف يمكنني إضافة صور إلى خلايا الجدول؟
أنشئ فقرة Image وأضفها إلى مجموعة Paragraphs للخلية.
هل يمكنني استيراد البيانات من مصفوفة إلى جدول؟
نعم. استخدم Table.ImportArray لملء جدول من مصفوفة ثنائية الأبعاد.
ملخص مرجع API
| Class / Method | الوصف |
|---|---|
Paragraphs | عناصر المحتوى المرتبة على الصفحة |
Paragraphs.Add | إضافة عنصر فقرة (نص، جدول، رسم بياني، إلخ.) |
Table | تخطيط شبكة مع صفوف وخلايا وعرض الأعمدة |
Table.ImportArray | ملء الجدول من مصفوفة |
Rows | مجموعة الصفوف في جدول |
Cells | مجموعة الخلايا في صف جدول |
BorderInfo | تنسيق الحدود للجداول والخلايا والصناديق |
FloatingBox | حاوية محتوى موضوعة بشكل مطلق |
HeaderFooter | محتوى رأس أو تذييل متكرر |
HeaderFooter.FromText | إنشاء رأس/تذييل من قالب نصي |
PdfPageStamp | تراكب صفحة PDF كختم |